Das \G steht für die stelle die pos() beschreibt, und ich kann mir wirklich nicht vorstellen wozu du es hier brauchst.
DB<1> $teststring = "xaysdfasldfasfxbyoiuwrwerx1yasdfsadfsadf";
DB<2> print $1 while ($teststring =~ m/x(.)y/g)
ab1
funktioniert einwandfrei!
grüße
rolf