Можно сделать это разными способами.
Один из способов:
- сначала научиться код всего приложения записывать в виде единого рег. выражения
- а затем уже легко будет сделать такой простой ограничитель
spoilerЕсли более серьезно, то рег. выражения работают с символами. Поэтому, для начала, можно разбить задачу на обработку нескольких случаев по количеству символов. И в каждом случае составлять отдельные условия.
Например, простой случай числа от 1 до 99. Здесь всего два варианта: однозначное или двузначное число. Таким образом:
^(\d{1}|\d{2})$
Далее в каждом варианте смотрим на ограничения. Например, в первом случае цифры у нас от 1 до 9, то есть ноль нельзя. Во втором случае первая цифра не может быть ноль. Получается уже сложнее:
^([1-9]|[1-9]\d)$
Дальше больше. Если диапазон от 1 до 999, то будет уже три случая.
^([1-9]|[1-9]\d|[1-9]\d\d)$
Если диапазон от 7 до 999, то логика меняется:
^([7-9]|[1-9]\d|[1-9]\d\d)$
И так далее.
В общем, получается монстр, разбирающий число посимвольно. Таким образом, можно выяснить любой диапазон, но не ясно, зачем так делать.
Если есть строка и нужно выяснить диапазон, то лучше привести к числу и просто сравнить в коде. Что-то вроде такого (зависит от языка программирования):
tonumber(str) > 0 and tonumber(str) < 100000