use strict; use warnings; my $sequence = "GGGGGGGAGAAAAAAAAAAAAAAAGAAGGA"; sub tryPattern { my $pattern = shift; my $iCount = 0; while ($sequence =~ /(?=\Q$pattern\E)/g) { $iCount++; my $iPos = pos($sequence); my $sMatch = substr($sequence, $iPos, 5); print "$iPos: $sMatch\n"; pos($sequence) = $iPos + 1; } print "total found: $iCount\n"; } tryPattern($_) foreach qw(AAAAA GGGGG GGAGA GAAGG);