поправка
$str = preg_replace('!youtube\-com\/watch\?v=([a-z\d\-_]+)([^\s]+)?!si',
'код вашего плеера',
$str.' ');
$str = preg_replace('!youtube\-com\/index\?[^\?]+\?v=([a-z\d\-_]+)([^\s]+)?!is',
'код вашего плеера',
$str.' ');регулярка немного неверная была