La única forma es traducir el rango en un patrón (obviamente), para eso debes olvidar que estás tratando con números enteros pero solo ves dígitos como "caracteres normales". Para su rango de ejemplo:
^(?:1[0-57]?|3)$
Nota:regex obviamente no es la forma de verificar si un número entero está en un rango numérico. En la vida real, utilizará buenos condicionales antiguos.