Paul,
when I run your example code, I get a separate resulting row for every character I'm trying to exclude. I don't see the same behavior in Jeff's code. Are you sure these are equivalent solutions, or am I doing something wrong?
It looks like each individual row returned by your procedure has removed one of the different excluded characters.
Thanks,
Carl