Numbers are being parsed slightly incorrectly.

because in given code number is anything that start with a number (0-9) and then continues with any alphanumeric character or dot (a-zA-z0-9_.). I.e. 6542zvasdfxzcv would be treated as a number though it certainly is not a number.