Похоже, что следующее регулярное выражение работает:
(?:^|\D)(1[0123]|[1-9])(?:\D|$)
Сам номер будет доступен в первой группе захвата.
Демо
Вот объяснение шаблона:
(?:^|\D) match either start of string or non digit character
(1[0123]|[1-9]) match 1-13
(?:\D|$) match either end of string or non digit character
Идея состоит в том, чтобы сопоставить 1-13, которые окружены границами с обеих сторон, как определено как нечто, не являющееся числом. Обратите внимание, что с помощью поисковых запросов мы могли бы легче написать это:
(?<!\d)(1[0123]|[1-9])(?!\d)
Однако, поскольку ваш вариант регулярного выражения не поддерживает это, мы должны использовать другой способ.