A única maneira é traduzir o intervalo em um padrão (obviamente), para isso você precisa esquecer que está lidando com números inteiros, mas só vê dígitos como "caracteres normais". Para o seu intervalo de exemplo:
^(?:1[0-57]?|3)$
Nota:regex obviamente não é a maneira de verificar se um inteiro está em um intervalo numérico. Na vida real, você usará boas e velhas condicionais.