In all other languages and operating systems, * matches any number of any characters. Like in a cmd line, b* will match anything beginning with b (ba, bbbbb, bqwerty). Why must Labview be different? With an input string of abbc, and a pattern of b*, using the * convention of almost all other languages, the outputs would be: before=a, match=bbc, after=<blank>. But nooooo, Labview has to define it differently so as to confuse everyone and make them learn two interpretations of *. Same with question mark. Pattern b? should return before=a, match=bb, after=c. Without having to read the help files, this is what I would expect. I wish this was the way it was. But its too late now, everyone is used to the unique Labview definitions.