Prima non poteva funzionare cmq per questo motivo:
se tu accetti come pattern questo:
-?\d+(,\d+)?
e una stringa contiene ad esempio
a5,2b
è cmq valida, perchè contiene quel pattern.
Per dirgli che la stringa, dall'inizio alla fine, deve essere esattamente quel pattern allora devi usare ^ e $
|