【OS名】Linux系
【PHPのバージョン】5.2.5
【質問内容】 preg_match_allの最短一致で、下記のデータから
<TR>と</TR>タグで囲まれた部分を取り出したいんですが、うまくいきません。

$pagedata
<TR><TD>YAMAHA1</TD></TR>
<TR><TD>KORG2</TD></TR>
<TR><TD>KORG3</TD></TR>

preg_match_all("/<TR>.*?KORG.*?<\/TR>/sui", $pagedata, $match);
上記のデータに対しこのコードを実行すると、
$match[0][0]には<TR><TD>YAMAHA1</TD></TR><TR><TD>KORG2</TD></TR>、
$match[0][1]には<TR><TD>KORG3</TD></TR>が格納されるのですが、
ちっとも最短一致ではない気がします。
最初に一致した文字列の後に同じ文字列が出た場合、
.*?の量指定子は最短にならんから開始位置を変更とか
気を利かしてくれるわけではなく、最後の文字列が見つかった時点で
検索をやめる、というだけの機能を持つのでしょうか。
ちなみに$pagedataに格納されるデータには改行がありません。
どなたかご存知の方、お教えください。