io farei una cosa del genere:

Codice PHP:
$string "qwerAbCfg";
$search ="/abc/i";
$matches = array();
preg_match_all($search$string$matchesPREG_OFFSET_CAPTURE);

$output ''
$start 0;
foreach(
$matches[0] as $match){
    
$output .= substr($string$start$match[1] - $start);
    
$start += $match[1] - $start ;
    
$output .= '<b>'.substr($string$match[1], strlen($match[0]) ).'</b>';
    
$start += strlen($match[0]);
 }
$output .= substr($string$start);
echo 
$output