Я знаю, что это вопрос Perl, но если у вас установлен Python, он может быть полезен для отладки подобных регулярных выражений.
$ python
>>> import re
>>> re.compile(r"[^\\]\]", re.DEBUG)
not_literal 92
literal 93
Это говорит нам о том, что он ищет любой символ, который не являетсяASCII 92 (обратная косая черта \
), за которой следует символ ASCII 93 (закрывающая скобка ]
).
Теперь я вижу, что в Perl есть похожая функция.Кажется менее дружелюбным.
$ perl
use re 'debug';
/[^\\]\]/;
Compiling REx "[^\\]\]"
Final program:
1: ANYOF[\0-[\]-\377][{unicode_all}] (12)
12: EXACT <]> (14)
14: END (0)
anchored "]" at 1 (checking anchored) stclass ANYOF[\0-[\]-\377][{unicode_all}] minlen 2