c:\@Work\Perl\monks>perl -wMstrict -le "my $str = qq{cat\nman\ncat\ndog\neel\nman\nman\ncat\ncat\nman\n}; ;; my $sub_str = qq{cat\nman\n}; my $n = 3; ;; $str =~ s{ (\Q$sub_str\E) }{ join '', map qq{$_ $1}, 1 .. $n }xmsge; print qq{>$str<}; " >1 cat man 2 cat man 3 cat man cat dog eel man man cat 1 cat man 2 cat man 3 cat man < #### c:\@Work\Perl\monks>perl -wMstrict -le "my $str = qq{cat\nman\ncat\ndog\neel\nman\nman\ncat\ncat\nwoman\n}; ;; my $sub_str = qr{ cat \n (?: wo)? man \n }xms; my $n = 3; ;; $str =~ s{ ($sub_str) }{ join '', map qq{$_ $1}, 1 .. $n }xmsge; print qq{>$str<}; " >1 cat man 2 cat man 3 cat man cat dog eel man man cat 1 cat woman 2 cat woman 3 cat woman <