Ok - I think I know what's up there. Thank you!
Sorry - I thought something else was going on the first time I read it.
Thanks for all the info. I did some testing and these are the results I found:
Prefix "prefix 1;prefix 2 [test;]"
Suffix "suffix 1;suffix 2 [test;]"
Speaking "prefix 1 suffix 1"
"{CMDSEGMENT:0}" will return "Not Set"
Expected - prefix 1 and suffix 1, when assembled, do not contain any dynamic elements. It looks like this when assembled: "prefix 1 suffix 1"
Speaking "prefix 2 suffix 1"
"{CMDSEGMENT:0}" will return "prefix 2 suffix 1"
Not sure why your {CMDSEGMENT:0} has all that in it. My initial test used '{CMDSEGMENT:0} {CMDSEGMENT:1} {CMDSEGMENT:2}'. What I get back is 'prefix 2 suffix 1' (probably an extra space in the middle). This is what I would expect to see, as prefix 2 has the optional set in the dynamic block ([test;]).
To make sure I was seeing it right, I broke the items up into their own actions. If I speak 'prefix 2 test suffix 1' , I get back:
{CMDSEGMENT:0} = prefix 2
{CMDSEGMENT:1} = test
{CMDSEGMENT:2} = suffix 1
Which is what was expected.
Speaking "prefix 1 suffix 2"
"{CMDSEGMENT:0}" will return "prefix 1 suffix 2"
Broken out:
{CMDSEGMENT:0} = prefix 1 suffix 2
{CMDSEGMENT:1} = Empty
{CMDSEGMENT:2} = Not Set
Expected - since the phrase looks like this when assembled: prefix 1 suffix 2 [test;], and the dynamic block is optional. Again, not sure why your segment 0 is returning all that.
Speaking "prefix 2 suffix 2"
"{CMDSEGMENT:0}" will return "prefix 2 suffix 2"
My result looks like this:
{CMDSEGMENT:0} = prefix 2
{CMDSEGMENT:1} = Empty
{CMDSEGMENT:2} = suffix 2
Expected - when assembled, it looks like this: prefix 2 [test;] suffix 2
Also not sure why yours is coming back all in segment 0. I am testing using a new profile with just the prefix and suffix commands that you had indicated.
For anyone else reading along, note that composite commands just join together two phrases - they don't add any dynamic elements.