原です。

|前田@リコーです。

|そのココロは、
|  +	greedy		次の正規表現より、くり返しを優先して試す
|  +?	non-greedy	次の正規表現を、くり返しより優先して試す
|という違いです。

なるほど、これは分かりやすい説明ですね。

|最長/最短という言葉の印象からくる「長さ」とかその「影響範囲」と
|かいう考え方は忘れましょう。

ううむ、そこまで言わなくてもいいんじゃないですか?(^^;) 例えば、
正規表現が ? を伴わない繰り返し指定のみで書かれた場合、つまり
ruby1.0 的、perl4 的な正規表現である場合、[ruby-list:10658] で
説明されたバックトラックによって得られたマッチは、長さの計算は
無くても結局「再左最長」つまり「最左で最長、最左優先」になって
ますよね。

#反例あるかな?ただし |(選択)が入ると話は別だけど。

同様に ? を伴う繰り返し指定のみで書かれた正規表現では、「最左最
短」と言ってもいいような気がします。ちょー簡単な例では

  "abc" =~ /(.+?)c/  # $& => abc, $1 => ab

という意味で「最左」であり、

  "abc" =~ /a(.+?)/  # $& => ab, $1 => b

という意味で「最短」と言える。

で、+ と +? が交じっていたりするとややこしいんだけど、まあ
「マッチの開始位置はマッチする範囲で常に最も左になるものが選
ばれる。」「? がついていてもいなくてもマッチの真偽には、影響
がない。」とここまでは言える。

そして(ある正規表現を取り出してただ「最長」、「最短」というの
は語弊が多いのだけど)「この .+? が最短というのはどういうこと?」
と問われれば、一応、「その部分にマッチする文字列が最短になるよ
うに」と答えるのは正しいのではないかな。

もちろん、正規表現が複雑になると「ある条件下で最短」とか言わな
いといけなくて、どんな条件?とさらに突っ込まれたら、やはり前田
さんのように説明せざるを得ないと思いますが。

#昔の Try!PC に「最左最長」と書いてしまった手前、自己弁護。^^;