use strict; use warnings; my $string = "aabbaaaabbaaabbbbabaabbbaaaa"; my @a; my $position = 0; while ( $position < length $string ) { my $sstr = substr($string,$position); if ( $sstr =~ /(aa)/ ) { push @a, $1; $position+=$-[0]+1; } else { $position++; } } print join("-", @a), "\n";