in reply to Re: Understanding a portion of perlretut
in thread Understanding a portion on the Perlretut

But that means that the regex could also be fixed without recourse to \G, by simply anchoring it to the start of the string:
while ($dna =~ /^(\w\w\w)*?TGA/g)
With ^ instead of \G, the regex would match only once, even with the /g modifier: because after a succesful match, the next match starts when the previous one ended, and ^ can't match there. With \G, though, you can get all the matches from the loop.
#! /usr/bin/perl use warnings; use strict; use feature qw{ say }; my $dna = join q(), qw( TGA TGA ATG AGA ); for my $regex (qr/(\w\w\w)*?TGA/, qr/^(\w\w\w)*?TGA/, qr/\G(\w\w\w)*?TGA/, ) { while ($dna =~ /$regex/g) { say "TGA with $regex: ", pos $dna; } }
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,