case insensitive number literals, fix bug in hexadecimal parsing

By stripping 'b', 'd', 'e' from the beginning of the string we were
removing part of the number.