Я ожидал, что это напечатает "[b]"
, но печатает "[]"
:
$x = "abc";
$x =~ /(b*)/;
print "[$1]";
Если звезда заменена на плюс, она действует так, как я ожидаю. Разве оба плюса и звезды не должны быть жадными?
ДОБАВЛЕНО: Спасибо всем за то, что указали (казалось, через несколько секунд), что "b *" соответствует пустой строке, первое вхождение которой происходит еще до того, как строка начинается. Так что жадность вообще не проблема. Это соответствует пустой строке, прежде чем даже добраться до первого 'b'.