I don't think `\.?\d*` is right here (or on any of the others) as we shouldn't be matching the digits unless we saw the decimal point first, so surely the two should be grouped with the `?` covering both?

In addition the comment on this line is wrong - looks like it has been cut and pasted.