Probably one could write a very flexible (= allows many formats) parser with only few options:

 - decimal separator: point or comma

 - space allowed inside number representation or stops parsing

 - default number base

 - acceptance of Unicode special characters (Unicode Minus, superscript digits, arabic-indic digits, \cdot)

 - optional: which special values and which formats: Inf, #-INF, *INF, NaN_0xDEADBEEF, "positive-infinity"

 

Or even restrict (some of) those options further to reduce the number of needed options.

 

Parsing the exponent for special variants:

 - Exponent started with x10 or \cdot10 (\cdot the centered dot character)

 - Exponent with p/P for hexadecimal numbers (where e has another meaning as digit)

 - Exponent as E(13) with parantheses

 

What is missing?