To highlight words in multi-byte text:
<?php
$s = 'Алабала';
$f = 'а';
echo preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
mb_eregi_replace — Заменяет по регулярному выражению с поддержкой многобайтовых символов без учёта регистра
$pattern,$replacement,$string,$options = null
   Сканирует строку string для поиска совпадений с
   шаблоном pattern, затем заменяет совпавший текст
   на значение, переданное в параметр replacement.
  
patternШаблон регулярного выражения. Можно указывать многобайтовые символы. Регистр будет проигнорирован.
replacementТекст замены.
stringСтрока (string) поиска.
options
   Возвращает результирующую строку (string) в случае успешного выполнения или false в случае возникновения ошибки.
   Если строка string недопустима для текущей кодировки,
   возвращает null.
  
| Версия | Описание | 
|---|---|
| 8.0.0 | Параметр optionsтеперь может принимать значениеnull. | 
| 7.1.0 | Функция проверяет, является ли строка stringдопустимой для
        текущей кодировки. | 
| 7.1.0 | Модификатор eобъявлен устаревшим. | 
Замечание:
Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().
Никогда не указывайте
модификатор e при работе с данными, которые получили из недостоверных источников. Автоматическое экранирование
этих данных не выполняется (в отличие от функции preg_replace()). Несоблюдение этих требований
с высокой вероятностью создаст риск выполнения удалённого кода в приложении.
To highlight words in multi-byte text:
<?php
$s = 'Алабала';
$f = 'а';
echo preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>Transliterator for cyrillic-to-latin letters for UTF chars:
<?php
function do_translit($st) {
    $replacement = array(
        "й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n",
        "г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'",
        "ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r",
        "о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e",
        "я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t",
        "ь"=>"\'","б"=>"b","ю"=>"yu",
        "Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N",
        "Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'",
        "Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R",
        "О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E",
        "Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T",
        "Ь"=>"\'","Б"=>"B","Ю"=>"YU",
    );
    
    foreach($replacement as $i=>$u) { 
        $st = mb_eregi_replace($i,$u,$st);
    }
    return $st;
}
?>