Twój regex nie wydaje się być poprawny. Jeśli to ma być zbiór znaków z tych podanych, to raczej powinno to być wzięte w []. Ponadto w takiej sytuacji będzie szukał tylko jednego z tych znaków, czyli zadziałałoby blog/a, ale już blog/aa nie. Możesz tam dać choćby plusa, aby pozwolić na dowolną liczbę znaków z tego zbioru lub jakoś inaczej ograniczyć ich ilość jeśli jest taka potrzeba. Czyli sam regex mógłby wyglądać przykładowo tak: blog/([a-zA-Z0-9-_]+)$