better number parsing rules