http://www.perlmonks.org?node_id=735427


in reply to Bug in substitution operator?

Just disambiguate the $1 with braces as well: ${1}:
#!/usr/bin/perl use strict; use warnings; my @lines = split /\n/, <<'END'; begin{verbatim} hello all end{verbatim} END s{((?:begin|end)){verbatim}}{${1}{whatever}} for @lines; print "$_\n" for @lines; __END__ begin{whatever} hello all end{whatever}