So you have to _repeat_ every variant in the code, right? Because by itself pattern isn't resolved to something sensible, like an array of matches. If there was an array, we cound access the keywords by index like it's done in PHP preg_match for example.
I'm not sure what you're looking for, though there is no regular expression support(currently).
But there are no arrays in VA.
Not yet, though it's on the to-do list.
As for variables, I don't see other ways except this ugly one: setting global variables for passing arguments.
Any variable in VoiceAttack is(currently) a global variable, which I understand feels a bit "iffy" if you're a programmer, but I believe the intent is to keep it simple for the majority of users.
It did occur to me to use wildcards and the "{CMD_AFTER}" token to pass parameters by calling the command by name, but it appears that action doesn't take the wildcard into account when matching commands.