$s1 = 'abbbcddddfegrgrgddeeeeedd'; print"$s1\n\n";($s2=$s1)=~s/((.)\2*)/$1,/g;map{$i=index($s1,$_);$l=length;print '-'x$i,$_,'-'x(length($s1)-$i-$l),"\n";substr($s1,$i,$l,','x$l);}sort{length$b <=>length$a}split(/,/,$s2);