ну так вы пытаетесь "стучать" курлом к картинке без авторизации. конечно же оно будет вас бросать на авторизацию
попробуйте "свою" картинку (ссылку) открыть в "инкогнито"
что увидите?
Но автор-то вопроса просил не parse_url(), а именно preg_match().
я здесь (на тостере) уже подметил, что местные часто пытаются навязать свое мнение, какой инструмент лучше. В особенности это касается регулярок. Здесь многие их не очень любят.
Но в плане решения задачи, да - мож быть ответ, как ваш, но предпочел parse_url потому как самому ранее нужно было распаршивать урлы и эта пхпшная функция весьма удобная