G'day lightoverhead,
I ran that code and got the same result as you:
$ perl -Mstrict -Mwarnings -E ' "abcdef" =~ / .+ (?{say "Matched so far: $&"}) bcdef $/x; ' Matched so far: a
I then stepped through the code using Regexp::Debugger:
$ perl -Mstrict -Mwarnings -E ' use Regexp::Debugger; "abcdef" =~ / .+ (?{say "Matched so far: $&"}) bcdef $/x; '
This showed each of the six "Matched so far: ..." lines in the same order as you have them. It also showed backtracking behaviour as I, and presumably you, would expect.
The problem seems to lie with just the output; however, I don't know what that problem is.
-- Ken
In reply to Re: Interesting behavior of regular expression engine
by kcott
in thread Interesting behavior of regular expression engine
by lightoverhead
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |