removed the 0 character from the complement in character classes. Such
that ![] means [\u000001-\uFFFFFF]. This solves accidental ambiguities
caused by concrete syntax, and usually people do not mean to include the
0 character anyway.
fixed some other bugs too