(PUP-2663) Allow unary plus/minus string numeric conversion

This allows string that are automatically converted to numeric to contain a leading unary + or -.

This regex has a few peculiar properties. Because it is using `^` and `$` it can match just a portion of a string. Combined with the `\s` that is allowed after the sign symbol, there are some cases that makes this very hard to predict how it will work.

  * "-\n1" == -1
  * "-a\n1" == 1
  * "-\v1" == 1 + a warning about "\v" being unknown
  * "-\n+1" == 1
  * "-1\n-2" == -1