$str = 'Какая-то * строка % и что-то еще &. Какие-то другие вхождения';
$str_new = preg_replace('#(?<=[,.\s]|^)(вхождения|[*%&]|другие|слова)(?=[,.\s]|$)#isu', '<b>$1</b>', $str);
echo $str_new;
// Какая-то <b>*</b> строка <b>%</b> и что-то еще <b>&</b>. Какие-то <b>другие</b> <b>вхождения</b>
preg_match($text, $pattern, $matches);
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
Понимаю что регулярке нужно как то объяснить от куда и до куда ей искать а там по идее просто шаблон типо: слово+запятая или без
[\w:.]+(?=[,\]])
dialogEvents=[CHAT_BOT, cliNotFound, slCP:Card.PayinSS:Card.Pay, AnnounceChatBot]
"слово1 слово2 -минус1 слово3.1-слово3.2 -минус фраза -минус2"
(?:^|\s)(-\S+)
(<div class="tab-pane.*?<\/th><\/tr><\/tbody><tbody>|<\/tbody><\/table><\/div><\/div>)
<tr><td>(.*?)</td><td>(.*?)</td></tr>
"\1"\t"\2"\n
Array ( [0] => hypertext [1] => ) language), programming )
^[^)]+
"выкусывает" эту часть:hypertext) language), programming
Array ( [0] => [1] => ) language), programming )