Using regex matching for integers and floats, better scanner error reporting