Регулярное выражение действительно не подходит для такого рода проверки. Ответ Гарета дает гораздо более разумное решение.
Если по какой-то причине вам абсолютно необходимо использовать регулярное выражение , то оно, вероятно, будет выглядеть примерно так:
^(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-6])$