# break up three character repeats, inserting spaces while ($seq{$k} =~ s/([QGYN])\1\1/$1$1 $1$1/g) { } while ($seq{$k} =~ m/([QGYN]{3,6})/g) { print "Match: $1 at ", pos($seq{$k}) - length($1)-2*(substr($seq{$k}, 0, pos($seq{$k})) =~ tr/ / /), "\n"; }