Der folgende Ausdruck funktioniert für alles außer den Kommas:
'^[-+]*[0-9,]*[.]*[0-9]+$'
Sie können mit zusätzlichen Prüfungen wie folgt auf eine fehlerhafte Kommaplatzierung prüfen:
not regexp_like(txt, '[-+]*,$') and not regexp_like(txt, [',,'])