http://qs321.pair.com?node_id=228981


in reply to Parse::RecDescent eats large part of grammar, thinking it to be implicit subrule

I tink that P::RD is getting confused with your very first line:
command: ( oops /\s+/ word { "(oops '$item[2])" }
I also had some problems doing "( rule | rule2 | rule3 ) rule4", I'd suggest trying splitting it up:
command: subcommand ...!/\S/ subcommand: oops {action} | np {action} | ..
BTW, you don't need to explicitly say that commands/words has any number of spaces between them, the parser assumes that anyway. (At least, mine did :)

C.