Piebald's solution:
((100)|(\d{1,2}(\.\d{1,8})?))
Isn't quite right - it doesn't detect "100.00" as a valid number, and on some systems it assumes that (100) is a numbered capture group.
Try this:
^(?<whole>100|\d{1,2})(?<fract>\.\d{1,8})?$
If you want to work with regexes, get a copy of
Expresso[
^] - it's free, and it examines and generates Regular expressions.