my $string = 'aaabcdabcddddddefgg'; $string =~ s/((.)(?(?=\2{2,})\2+))\1/$1/g; print "$string\n";