sub f{ my@a; "@_"=~/(.)(.*)(?!\1)(.)(.*)\3(?{push@a,[$1.$3x2,"$`$2$4$'"]})^/; my$s=0; $s+=$-=$$_[0]-$s+f($$_[1])for@a; $s; } print f<>