http://www.perlmonks.org?node_id=1058930


in reply to [Perl 5.14, regex]: Problems with /g, \G and pos()

The problem is that your regex potentially matches zero characters, so a loop like

while (/\s*/g) { ... }

Would loop infinitely. To prevent that, perl has some extra magic asociated with zero-width matches and /g, which you observe here. The obvious solution is to not use a regex which can match zero characters. You can prevent resetting of pos by using the /gc modifiers.

Replies are listed 'Best First'.
Re^2: [Perl 5.14, regex]: Problems with /g, \G and pos()
by Darkwing (Beadle) on Oct 20, 2013 at 12:01 UTC
    Ah, well, that's reasonable. Thanks to you and to all others for help!