Was curious about this because I am laughably ignorant when it comes to regex's. So I looked Here under the "\G Magic with Perl" section.

Subsequently, I Googled "perl position of last match" which led me to this which led me to try the following:

my $str = " xyz" print "$str\n"; $str =~ /^(\s*)/g or die; print("match1: pos=", pos($str), "\n"); print "$str\n"; print "@-\n"; print "@+\n"; $str =~ /\G(\s*)/g or die; print("match2: pos=", pos($str), "\n"); print "$str\n"; print "@-\n"; print "@+\n"; $str =~ /\G(\s*)/g or warn; print("match3: pos=", pos($str), "\n"); print "$str\n"; print "@-\n"; print "@+\n";
Which outputs
xyz match1: pos=2 xyz 0 0 2 2 match2: pos=2 xyz 2 2 2 2 Warning: something's wrong at /tmp/Perl-1.pl line 20. Use of uninitialized value in print at /tmp/Perl-1.pl line 21. match3: pos= xyz 2 2 2 2
which I think might help describe what happens...(of course I could be wrong)

When \G goes to the position of the previous match to find the next white space, it is already beyond the last position of white space in the string. The warning is sort of uninformative though... . I gotta wonder if the last position and first position being equal leave the \G wondering where to go next?

Am looking forward to other responses to this by those who know...

(yet another opportunity to display my ignorance! Hot Damn!)


UPDATE: looks like the tool mentioned Regex analysis might be helpful with this Hope that is helpful....
...the majority is always wrong, and always the last to know about it...
Insanity: Doing the same thing over and over again and expecting different results.

In reply to Re: [Perl 5.14, regex]: Problems with /g, \G and pos() by wjw
in thread [Perl 5.14, regex]: Problems with /g, \G and pos() by Darkwing

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.