while(){ s/\]([ATCG]*)\[/'N' x length($1)/e; print $_; } __DATA__ TG[CCC]CC[TTT] TG[CCC][TTT] TG[CCAAATTT] Respective Output is: TG[CCCNNTTT] TG[CCCTTT] TG[CCAAATTT]