More of an aside, but wildcards can be used in dynamic command sections, with the exact same caveat that they can only appear at the start and/or the end of the assembled phrase.
E.G.
"I choose [option a;option b;option *]"
"[I'd like;get me;*] something"
"[something;something else;*] for [Larry;Curly;*]"
are valid, because the sections containing wildcards would result in said wildcards appearing only at the start and/or beginning of the assembled phrase, I.E. "I choose option *", "* something", and "* for *"
Something like "[do;perform] [something;*] for me" isn't, because that'd result in "do * for me", I.E. the wildcard would be within the phrase, which is not valid.
In the specific example of "[blah;blah2;] [commandversion1;commandversion2] [*;]", you'd be defining the following combination of predefined and wildcard phrases:
blah commandversion1 *
blah commandversion1
blah commandversion2 *
blah commandversion2
blah2 commandversion1 *
blah2 commandversion1
blah2 commandversion2 *
blah2 commandversion2
commandversion1 *
commandversion1
commandversion2 *
commandversion2
so you'd be able to speak either "commandversion1" by itself, or "commandversion1 something else", for example.
Depending on how well the speech recognition system is trained and able to recognize dictation for you, that may be undesirable, as one may be more easily recognized than the other.
If you'd like to gain more insight into which phrases will be generated based on your input, have a look at
this topic.