Misafir; $keys değişkeni utf8 in desteklemediği bazı karakterler içeriyor olabilir net birşey söylemek için $keys değişkeni ne gibi değerler alıyor onu bilmek lazım. regex kodunuzda /u utf8 modifierde kullanılmış aslında hata olmaması lazım ama sisteminiz ve bu kodun olduğu php dosyası utf8 modunda değilse utf8'e çevirip dener misiniz ? çünkü /u sadece utf8 modunda çalışır diye hatırlıyorum.
$key değişkeni aşağıdaki gibi hocam. utf8 olarak kayıtlı zaten hocam dosya.
$baslik = "su ve ateş";
$keys= explode(" ",$baslik );