while (<>) { s/(.)((?!\1).)\2(?!\2)/$1\($2$2\)$3/g; s/^(.)\1(?!\1)/\($1$1\)$2/; print; }