First of all, I would never ever combine \d and hardcoded numbers. Your regexp will match 0 to 99 in more than a dozen scripts, but 100 only in western numerals.
Given that, I'd write it as /^(?:[0-9]{1,2}|100)$/. Or, if I wanted to be lazy: do {local $" = "|"; /^(?:@{[0..100]})$/};.
Comment on Re: Matching an integer between 0 and 100