> $in = '423RY75Y69827EC67592C78657N965R';; > ( $out = $in ) =~ s[((\D)[0-9N]+\2)][_$1_]g;; > print $out;; 423R_Y75Y_69827E_C67592C_78657N965R #### > $in = '423RY75Y69827EC67592C78657N965R345U299M';; > ( $out = $in ) =~ s[ ( ( \D ) [0-9N]+ \2 ) | ( [0-9N]+? [A-MO-Z] (?=\d) ) ]{ defined $1 ? "_$1_" : "$3_" }egx; print $out;; 423R_Y75Y_69827E_C67592C_78657N965R_345U_299M