For a lexical analyzer when it encounters 0x it thinks of the token as a hexadecimal number
But as it scans, it finds "i" and there is no space or delimiter between 0x5 and i.
Maximal Munch thus invalidates the token.
Note : Event though whitespace is removed by lexical analyzer and is not passed to parser it still needs it as a delimiter