"(?:([A-Z]{3,}))(.|\n)*?\1"
Хм, первая скобка (?:) - это группа без захвата, когда вы хотите сгруппировать (скажем, для оператора |), но вам все равно, чтобы «запомнить» это. Вторая скобка, то, что вы хотите быть группой № 1, находится внутри этой: ([A-Z]{3,})
. Казалось бы логичным, что, говоря «не помни, что внутри», это не будет.
В любом случае, какой смысл удваивать группы, когда внешнее существо не захватывает? (также не нужно использовать запятую, если вы не указали вторую часть последовательности квантификатора) Разве вы не можете просто сказать:
"([A-Z]{3})[.\n]*?\1" //now \1 is defined?
что касается вашей ТРЕТЬЕЙ группы, (.|\n)*?
, в которой вы использовали группировку + чередование + квантификаторы одновременно, я понятия не имею, что может быть \ 3, если вы попытались получить к нему доступ в исходном выражении: [.\n]*?
должно быть в порядке.