Совпадение повторяющегося символа в регулярном выражении просто с обратной репликацией:
(.)\1
Однако, я хотел бы совместить символ после пары символов, поэтому я подумал, что могу просто добавить это в lookbehind:
(?<=(.)\1).
К сожалению, это ничего не соответствует.
Почему? В других вариантах я не удивлюсь, потому что есть серьезные ограничения на lookbehinds, но .NET обычно поддерживает произвольно сложные шаблоны внутри lookbehinds.