\b
не совпадает между знаком фунта и пробелом, потому что они оба совпадают с нестрочными символами, но совпадает между знаком фунта и символом d.
Вместо секунды граница слова \b
, вы могли бы утверждать, что то, что справа, не является символом без пробела \S
, используя отрицательный взгляд (?!
:
\bC#(?!\S)
Regex demo
Как указывалось в комментариях @ elgonzo , чтобы не допустить нарушения соответствия, когда после 101 * следует несимвольный символ, вы можете использовать положительный прогноз, чтобы утверждать, что являетсясправа либо нет слова char \W
, либо указывается конец строки $
\bC#(?=\W|$)
Regex demo