@ Matt, Marko, others...
As I was testing out this example, it wasn't obvious to me that MC would handle the concatenation of "1x" with the function PadNumber().
1xPadNumber(...)
I suppose when a left paren is encountered, it has to backtrack the previous token for a match from its table of functions. I was initially thinking in this instance the two components would have to be concatenated by another means, as in:
"1x" joined to the output of PadNumber()
It is fairly straightforward if the concatenation is
PadNumber(...)1x, since the right paren denotes the end of the function.
Now, what about ambiguities?
Left([Name],3)
outputs 3 characters from Name. But happens with
RemoveLeft([Name],3)
Does this remove 3 chars from the left of Name, or append "Remove" in front of the first 3 characters of Name?
Turns out, it does run RemoveLeft(), and not Left().
But, is it a longest match, or first found in a function name string table? Testing Now() against IsInPlayingNow() is also consistent with the longest match theory, but it still isn't confirmed. With no other ambiguous cases, we can't tell.
So how does one instead append the word "Remove" to the output of Left(), or the word "IsInPlayingNow" to the output of the Now() function, and furthermore, know to do this unambiguously?