Rex, the fact that no one has complained about this in 10 years is actually quite alarming, I think. It occurs to me that users may have used time-tested scripts over large batches of files without even realizing that certain files (those that begin with a parenthesis) were being damaged by their trusty script.
That's exactly what (almost) happened to me. I wrote a one-line BTM which takes a filename as a parameter and creates a shortcut to that file, adding .lnk at the end. (In order to do this I have to use two parameter substitutions on the same line, of course: one for the filename and one for the shortcut name).
I tested this BTM on a bunch of files, and then, satisfied by the results, I ran it across a very large list of some 6000 files. Only by chance did I happen to notice that a few of the resulting shortcut names were mangled. I easily could have missed these, since the rest of the files were fine, and I could have gone on using this script for years without realizing that here and there filenames were being mangled.
Over the past two months I've become more and more enthralled by your wonderful product, but now, for the very first time, this phenomenon has shaken my confidence in TCC, because you've indicated that the product is not intended to work with all legal filenames, but rather there are some characters that the product simply is not tested for and will not work with.
As dumb as it may be to use a parenthesis or a percent sign in a filename, they are legal characters, and on my system I've got 15 years worth of legacy files, over 2 million of them, and they make use of the full range of legal characters. I find it very hard to believe that my system is unique in this regard.
I've considered that every time I run a BTM file perhaps I should run a script that first inspects the files to see if the first character is a parenthesis, and that prefixes a character as necessary. But that makes the whole BTM infrastructure much more cumbersome.
In terms of possible solutions:
(a) Is it really necessary to support command groups *inside quotations*? I quote all my filenames on both sides (because they often contain spaces). Would it be possible to add an option to disable command groups inside quotation marks?
(b) Alternatively, would it be possible to add an option to disable command groups altogether? Of course nobody wants to dismiss command groups completely, but if it could be disabled in a OPTION command, then my BTM could first disable the command groups, then create the shortcut, and then reenable to command groups.
With much respect for your fine product,
This is not a common issue -- it requires that you both have a filename that begins with a (, and that also contains no ), and that you're trying to do multiple variable substitution where the first filename is the one with the leading (. There's not much I can do about it other than to remove support for command groups, and I suspect that would generate more than one complaint in 10 years (yours is the first).
You can also escape the leading ( with two ^^'s.