.abc(pqr) .abc(abc_p) #### .abc(pqr) .abc_1(abc_p_1) .abc_2(abc_p_2) #### my $a = qr{ [ .(] }xms; my $b = qr{ abc | abc_p }xms; while (my $line = <$fh>) { if ($line =~ m{ $a $b }xms) { for my $i (1 .. 2) { (my $c = $line) =~ s{ ($a $b) }{${1}_$i}xmsg; print $out $c; } } } else { print $out $line; } }