$string='aabbbbbbcccccaaaddeefghhhh'; my @l; push @l, $1.$2 while $string =~ /(\w)(\1*)/g; print join ',', @l; # outputs aa,bbbbbb,ccccc,aaa,dd,ee,f,g,hhhh