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

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

I think these referenced groups are now wrong. A hex number is now group 3, for instance.