<?php
function preparePattern($s)
{
return '#('.preg_quote(mb_strtolower($s), '#').')#ui';
}
mb_internal_encoding('utf-8');
$str = 'Море качается раз, море качается два';
$words = array('море', 'раз');
$patterns = array_map('preparePattern', $words);
header('Content-type: text/html; charset=utf-8');
echo preg_replace($patterns, '<b>$1</b>', $str);
результат
Море качается раз, море качается два