You may find this pattern useful for the stream ones:
$pattern = '/\[stream[^\]]+\/\]/';
$string_without = preg_replace($pattern, '', $string);
For the video matches, this might be helpful:
$pattern =- '/\[video([^\]]*)\]([^\[]+)\[\/video\]/';
$num = preg_match_all($pattern, $string, $matches);
print_r($matches);