$descr = '<span style="color:chocolate;">какой-то текст тут</span>';
$descr = preg_replace('#<span[^>]+style=("|\')color:(\S*)\\1[^>]*>#i', '', $descr);
$descr = preg_replace('#<\/span>#i', '', $descr);
В целом, отрабатывает нормально, но результат:
[color=chocolate;]какой-то текст...
То есть в конце затерялся знак ; и никак не могу его выкинуть.