Шаблон \1
является обратной ссылкой на группу захвата 1, то есть (([0-9a-zA-Z])\1)
. Вы действительно хотите сослаться на группу захвата 2 и, следовательно, вам нужно \2
вместо \1
.
Обратите внимание, что \b#
будет соответствовать только #
, которому предшествует слово char (буква, цифра или _
). Вам нужно использовать границу без слов в начале, \B
.
Для сопоставления шестнадцатеричных символов предпочтительнее использовать [A-Fa-f]
, а не [A-Za-z]
.
Используйте
@"\B#(?:([0-9a-fA-F])\1){3}\b"
Используя буквальный строковый литерал, вам не нужно дважды использовать двойные обратные слеши здесь.