Post History
Assuming you're not limited to US-ASCII in notation, I think the best approach would be to find bracket characters or some other notation that won't conflict with any characters that will need to b...
Answer
#1: Initial revision
Assuming you're not limited to US-ASCII in notation, I think the best approach would be to find bracket characters or some other notation that won't conflict with any characters that will need to be literally in the command. There are a lot of [bracket characters in Unicode](https://en.wikipedia.org/wiki/Bracket#Encoding), so something like this could work: ARRAY[data-type ⌞, count⌟] Though that of course requires defining your notation in a clear way in each place someone might stumble upon it. The other option is to just be overly verbose in each example, calling out the optional parts: ARRAY[data-type, count] └──┬──┘ The count is optional, but if included must be preceded by a comma. If the count is not included, the comma must also be omitted. But that's probably a bit much. As you say, not calling out parts as "optional" explicitly and just showing all the possible cases may be the clearest approach for what you're trying to do.