I actually need it to match on all those:
-0, +0, 00001, 234.000
The system my company is building will take QA test data for chemicals from a Lab and store it in our MRP system. Here is where things get crazy. The numbers 500, 500.0, 500.00, 500.000 are all the same value - but actually different test results (i.e. 500 <> 500.0). There are reasons for this logic (has to do with limitations in the MRP system). This is why I can not use the xsd:decimal type and must use xsd:string. Since I am using xsd:string, I now need to make sure they are sending me a valid number (while keeping all the extra 0's).
Thanks for all your help. Do you see any issues with these requirements and my RegEx that I created above?