Это также работает:
^([1-9]|[0-1][0-2])$
[1-9] соответствует одиночным цифрам от 1 до 9
[1-9]
[0-1][0-2] соответствует двойной цифре между 10 и 12
[0-1][0-2]
Здесь есть хорошие примеры