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