perl の正規表現について質問いたします。 末尾に記載したスクリプトを実行すると、入力中(__DATA__)の --- ccccc .+? \n \n .+? \n ( .+? \n \n }x) { print STDERR "NG\n"; } else { print STDERR "OK\n"; } } __DATA__ AAAAAA aaaaa bbbbb ccccc
ccccc
ccccc
ccccc
ccccc
ccccc
--- が、正規表現中の --- (.+?
\n.+?
\n.+?
\n )+ --- の部分にマッチしてしまいます。 なぜマッチするのか、どなたか教えていただけませんでしょうか ---ここから末尾までがソース--- use strict; local $/ = "\n"; while (my $block = ) { if ($block =~ m{.+?
\n.+?
\n.+?
\n )+aaaaa
aaaaa
aaaaa
bbbbb
bbbbb
bbbbb
ccccc
ccccc
ccccc
ccccc
ccccc