my $text = <<'END_OF_TEXT'; {{ hello }} END_OF_TEXT my $grammar = <<'END_OF_GRAMMAR'; { use 5.012; use Data::Dumper; } #Declare some my() variables for use within the rule: brace_block: brace_block: lbrace(1..) { $lbraces = join '', @{$item[1]}; $rbraces = '}' x length $lbraces; } 'hello' "$rbraces" { say "$lbraces $item[3] $rbraces"; } lbrace: / [{] /xms END_OF_GRAMMAR