MATCH to Only Numbers

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 ^[+-]?