Help for this page
while (<DATA>){ s!</it><(.*?)><it>(.*?)</it></\1>!<$1>$2</$1></it>!g; # ^ here's the difference ... __DATA__ <it>a</it>+2<it>b</it><inf><it>cd</it></inf> <it>a</it>+2<it>b</it><sup><it>cd</it></sup>
output: <it>a</it>+2<it>b<inf>cd</inf></it> <it>a</it>+2<it>b<sup>cd</sup></it>