Почему не первый вывод на печать выражение, что я ожидаю:
first = This is a test string, sec = This is a test string
Так как и * и + являются жадными, то почему внутреннее * i.e внутри "((" в первом совпадении не потребляет всю строку?
use strict;
use warnings;
my $string = "This is a test string";
$string =~ /((.*)*)/;
print "first = $1, sec = $2\n"; #prints "first = This is a test string, sec ="
$string =~ /((.+)*)/;
print "first = $1, sec = $2\n"; #prints "first = This is a test string, sec = This is a test string"