\[youtube=http://[^\]]+v=([\w-]+)[^\]]*\]
Тем не менее, было бы лучше просто извлечь URL, а затем использовать некоторую проверку для него и, наконец, передать его parse_url и parse_str ($ url ['query'], $ blah) => $ blah ['v' ] будет иметь параметр v.