PHP: preg_replace que não diferencia maiúsculas de minúsculas de uma string cirílica em UTF8
Eu tenho um script PHP 5.3 exibindo usuários do meu site e gostaria de substituir uma determinada cidade russa (armazenada em UTF8 no banco de dados PostgreSQL 8.4.7 + CentOS 5.5 / 64 bits Linux) pelo nome mais antigo (é uma piada interna):
preg_replace('/Волгоград/iu', 'Сталинград', $city);
Infelizmente, isso só funciona para correspondências exatas: Волгоград.
Isso não funciona para outros casos, como ВОЛГОГРАД ou волгоград.
Se eu modificar meu código fonte para
preg_replace('/[Вв]олгоград/iu', 'Сталинград', $city);
ntão ele pegará o segundo caso acim
Alguém sabe o que está acontecendo e como corrigi-lo (supondo que eu não queira escrever [Xx] paracad carta)
Obrigado! Alex
ATUALIZAR
# rpm -qa|grep php
php53-bcmath-5.3.3-1.el5
php53-gd-5.3.3-1.el5
php53-common-5.3.3-1.el5
php53-pdo-5.3.3-1.el5
php53-mbstring-5.3.3-1.el5
php53-xml-5.3.3-1.el5
php53-5.3.3-1.el5
php53-cli-5.3.3-1.el5
php53-pgsql-5.3.3-1.el5
# rpm -qa|grep pcre
pcre-6.6-2.el5_1.7