/usr/bin/perl -w use strict; use warnings; use re 'eval'; use Regexp::Common; my $text= "start \\chapter{argument1}{argument2} end"; print "INPUT: $text\n"; ################################################################ my $arg1= qr/\s*($RE{balanced}{-parens=>'{ }'})/; my $args2= $arg1.$arg1; my $macronamereadfromfile="chapter"; my $patternreadfromfile= "

\$1

"; my $inpattern = "\\\\$macronamereadfromfile$args2"; my $outpattern = qq{ qq{$patternreadfromfile} }; #print "PATTERNS: '$inpattern'. to='$patternreadfromfile'. became='$outpattern'\n"; $text =~ s/$inpattern/$outpattern/gee; ################################################################ print "OUTPUT: '$text'\n\n"; #### OUTPUT: 'start

argument1

end' ##
## OUTPUT: 'start

{argument1}

end'