Dein Problem ist, dass die Mitte des Strings " &" (space ampersand) eben nicht auf \b matcht, weil weder die rechte noch die linke Seite aus Buchstaben besteht, die Voraussetzung für einen \b-Match.
Wenn du die Möglichkeit hast, zuerst das Highlighning vorzubereiten und erst dann HTML-Escaping zu machen, dann solltest du diesen Wert gehen. Oder du baust dir die Regexpes aus look-behind und look-ahead assertions zusammen. Siehe
perlre.