si infatti, non solo non le conosco le odio

questo

preg_match('@^(?:https?://)?([^/]+)@i', $url, $matches);

non fa la stessa cosa?