yaptığınız kural hatasıdır.aslında kodlarınız çalışıyor teknik olarak fakat regex kuralınız yanlış
eğer regex kullanılacaksa @regexifadeleri@si gibi yada # gibi pek çok kurala uygun yazış biçimi var
aşağıdaki kod istediğiniz çıktıyı veriyor

$icerik = 'Deneme 123 <span style="color: white; font-family: inherit;"><a href="http://site.com/2014/07/deneme-yazisi.html"><span style="color: white;">deneme yazisi</span></a></span> deneme yazilari <a href="http://site.com/2013/08/ilk-deneme.html"><span style="color: white;">ilk deneme</span></a> ilk denemeler <span style="color: white;">son deneme</span> ve son';
 

$degisecek = '@<span style="color: white; font-family: inherit;"><a href="(.*)"><span style="color: white;">(.*)</span></a></span>@si';
$degisecek2 = '@<a href="(.*)"><span style="color: white;">(.*)</span></a>@si';
$degisecek3 = '@<span style="color: white;">(.*)</span>@si';
 
$icerik = preg_replace($degisecek,'',$icerik);
$icerik = preg_replace($degisecek2,'',$icerik);
$icerik = preg_replace($degisecek3,'',$icerik);
 
echo $icerik;