I have also just realised that a better example than ${ in "" would have been $( inside "".
There, because of the double quotes, the '(' is treated literally, as a '(' character, and not as the '(' operator. But still when the command substitition (inside the "") is performed, the '(' is available to be part of the syttax, and is no longer treated literally at all. Put that reasoning into the argument in the previous message, instead of the ${ version and I think it becomes clearer how the current text allows the '-' inside "a-c" to be treated literally, as the string is parsed (not that that one would be treated differently anyway, any more than the '{' would be in the ${ form) but still have its special meaning in character ranges, just as the '(' (or '{' retains its special meaning in the expansions. kre