in reply to Double check for positions

To match overlapping regexes, use a look-ahead assertion:
my $s = 'AGCTTCTTGCTTCTTGC'; # ~~~~~~~~~ # ~~~~~~~~~ while ($s =~ /(?=GCTTCTTGC)/g) { say pos $s; }

There's something wrong with your input, though, there's no overlap and it matches just once even with the look-ahead. I modified it as shown in the sample.

Another possibility is to use index:

my $s = 'AGCTTCTTGCTTCTTGC'; my $pos = -1; while (-1 != ($pos = index $s, 'GCTTCTTGC', $pos + 1)) { say $pos; }
($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,