I don't see big faults in your expression except may be not escaping
the dot.
Having tested your expression I see it catches the whole line.
I might improved it a bit this way
^\s*\d+((,\s+[+-]?\d*\.?\d+[eE][+-]\d+)+)\s*$
If you know there will be always not less than 1 and not more than 3
floats
in a line and if you want each of them to be stored into a separate
backreference,
the (,\s+[+-]?\d*\.?\d+[eE][+-]\d+) part should be repeated personally
for each floating point number. This way (in a free spacing mode):
^\s*(\d+)
(?:,\s+([+-]?\d*\.?\d+[eE][+-]\d+)) #1st float $2
(?:,\s+([+-]?\d*\.?\d+[eE][+-]\d+))? #2nd float $3
(?:,\s+([+-]?\d*\.?\d+[eE][+-]\d+))? #3rd float $4
\s*$
--
Regards
Eugeny