ну, если работает, то да))
теперь немного критики:
из шаблона можно убрать внешние круглые скобки и в строке замены обращатся уже к $0 вместо $1
также стоит учесть что что адрес сайта может быть без поддомена( например
http://ya.ru), либо с произвольным их количеством, и в любой зоне
для неисспользуемых подшаблонов можно задать ?: указав тем самым, что запоминать их не надо.
да и подшаблоны у вас используются там, где и без них можно
$pattern = "/http:\/\/(?:[\w\d_\-]+\.)+[\w\d_]{2,5}/i";
$to = "<a href=\"$0\">$0</a>";
$text = "А это тот самый сайт [http://my_site-domain23.edu], о котором мы разговаривали вчера.";
вообще же довольно замечательно для первого регулярного выражения, если вы сами его составили