Как подправить регулярку?
videoId всегда содержит 11 символов и всегда будет заканчиваться одним из следующих символов:
A, E, I, M, Q, U, Y, c, g, k, o, s, w, 0, 4, 8 

Таким образом, регулярное выражение (RegEx) для videoId будет выглядеть следующим образом:
 [\w-]{10}[AEIMQUYcgkosw048]{1}

И так как вариантов ссылок на видеоролик может быть много, то не всегда подойдёт парсинг URL (parse_url, parse_str итп), поэтому лучше использовать регулярное выражение в этом случае 

function getVideoID ($url)
{
	preg_match("%^(?:https?://)?(?:www\.|m\.)?(?:youtu\.be/|youtube(?:-nocookie)?\.com(?:/watch\?v=|/watch/\?v=|/embed/|/v/))([\w-]{10}[048AEIMQUYcgkosw]{1})($|\S+).*$%x", $url, $matches);
	return $matches[1] ?? "";
}

echo getVideoID("https://youtu.be/DBXH9jJRaDk?t=11");
//DBXH9jJRaDk

echo getVideoID("https://www.youtube.com/embed/DBXH9jJRaDk");
//DBXH9jJRaDk

echo getVideoID("https://www.youtube.com/watch?v=DBXH9jJRaDk&t=30&feature=emb_logo");
//DBXH9jJRaDk

echo getVideoID("https://www.youtube.com/watch?v=DBXH9jJRaDk");
//DBXH9jJRaDk

echo getVideoID("https://m.youtube.com/watch?v=DBXH9jJRaDk&t=30");
//DBXH9jJRaDk
Так можно:
preg_match('/\?v=([a-zA-Z0-9_\-]+)/', $url, $matches);
print_r($matches[1]);