$_ = "bbbccabcabcabcdba"; my $l = length; s{((\w{$l})\2+)}{($2){@{[length($1)/length($2)]}}}g while -- $l; #### (b){3}c(cab){3}cdba #### (b){3}c(c(a){2}b){3}cdba