$ perl -le' my $string = "iiMMMMMMMMMMoooooooooooooooooooooooMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMMMMMMMooooooooooooooooooooo"; my $code; $code .= $1 eq "M" ? $-[0] + 1 . "-$+[0]" : $1 while $string =~ /(.)\1*/g; print $code; ' i3-12o36-45i76-88o