Я вижу некоторые проблемы в вашем регулярном выражении
^(\d{1,2,3}\w+)/$
\d{1,2,3}
должно быть \d{1,3}
Вы просто даете минимальную и максимальную сумму
\w
включает также цифры и _
, но не -
Возможно, лучшим решением будет
^/(\d{1,3}[a-zA-Z-]+)/$
См. здесь, на Regexr
[a-zA-Z-]
- это класс символов, который соответствует символу из того, что определено внутри. Я не знаю, подходит ли вам диапазон букв a-zA-Z, но вы можете добавить любой символ, который хотите сопоставить, в класс, например так: [a-zA-ZöäüÖÄÜ&?-]