Unlike Numeric() with Match() I think trailing spaces matter, so if you want to allow spaces on the end you must Clip().
Your use of the $ modifier to match to the end would indicate you want all numbers with No trailing spaces, so this probably does not apply here, just thought I would mention it.
Asterisk *
would allow [+-]
to occur Zero or More times +-+1234
You probably want Question Mark ?
that allows Zero or ONE + -
… so ^[+-]?