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

questionAnswers(9)

yourAnswerToTheQuestion