RegEx: Остерегайтесь, чтобы избежать нечетного количества последовательных обратных слешей

У меня есть пользовательский ввод, где некоторые теги разрешены в квадратных скобках. Я уже написал шаблон регулярных выражений, чтобы найти и проверить, что находится в скобках.

В пользовательском поле ввода открывающая скобка может ([) быть экранирована с помощью обратной косой черты, а также обратная косая черта может быть экранирована другой обратной косой чертой (\). Мне нужен вспомогательный шаблон, чтобы избежать нечетного количества последовательных обратных косых черт перед открывающей скобкой.

На данный момент я должен иметь дело с чем-то вроде этого:

(?<!\\)(?:\\\\)*\[(?<inside brackets>.*?)]

Он работает нормально, но проблема в том, что этот код по-прежнему совпадает с возможными парами последовательных обратных косых черт перед скобками (даже если они скрыты), а просмотр только проверяет, есть ли еще один обратный слеш, добавленный к парам (или непосредственно к открывающей скобке) , Я должен избегать их всех в группе наблюдения, если это возможно.

Пример:
my [test] string is ok
my \[test] string is wrong
my \\[test] string is ok
my \\\[test] string is wrong
my \\\\[test] string is ok
my \\\\\[test] string is wrong
...
etc

Я работаю с PHP PCRE

Ответы на вопрос(2)

Ваш ответ на вопрос