正規表現は、指定がなければ最長一致を行う。 $str = "abcabcabcabc"; $str =~ /a(.*)c/; まず a は $str 1文字目の a にマッチし、c は $str の末尾の c にマッチするため、 $1 は bcabcabcab になる。 範囲を最小にマッチさせたい場合は $str =~ /a(.*?)c/; と、繰り返しを表す記号の後に ? をつける。 これで $1 は b になる。 ちなみに、もちろん、最初から 2文字目の b です。