my $parse = Parse::RecDescent->new(<<'EndGrammar'); rebol : block { dump_item('block', \@item) } | scalar { dump_item('scalar', \@item) } block : '[' block_stuff(s?) ']' block_stuff : scalar scalar : '%' file file : /w+/ EndGrammar #### %reb.html #### [ %reb.html ] #### '%' file #### " %reb.html" #### /\s*/