And one last correction to my own message (I promise, this is the last of my messages for now!!!):
I failed to look at this case: | echo '${a##$b"$c"} removes \*: '"|${a##$b"$c"}|"' - matches \, then *' # bash prints |\*bc| and just lumped it in with the other three - but this is actually another example of the original ("dash change") case, and is unspecified, as the \ that results from $b has nothing to escape, and hence produses unspecified results, so whatever a shell produces for this one is OK. The \ could be treated as a literal, as you expect, or it can be treated as an error (which the NetBSD shell does, so the pattern matches nothing) or it could just be ignored completely, leaving just "$c" to attempt to match. All up to the shell implementor. GIGO again. kre