After a private conversation with Arthur O'Dwyer, and a good night's sleep, I believe this fix is a better fix than what I committed in r184656 yesterday.  I've basically moved the checking for '`' from the start of the demangling process to the end of it.  In the process I discovered that one of the test cases no longer demangled to the expected string.  After further investigation I believe this case to not be a valid mangled string, and so I moved the test case to the 'invalid cases'.  The reason I believe it is invalid is that it should use T_ instead of T0_ to index the template parameter.