Ответ 1
JavaScript автоматически не удаляет ваш ]
.
Это поможет вам получить визуальную идею:
PCRE:
JS:
Python:
Итак, чтобы исправить это, вам нужно избежать скобок
@[[](.[^\]]+)[\]][()](\d+)[)]
// ^ ^
Лучший способ написать это регулярное выражение - минимизировать использование классов символов:
@\[(.[^\]]+)\][()](\d+)\)
Вот почему это хорошая практика, чтобы избежать этого, вместо того, чтобы полагаться на причуды аромата.
Я сгенерировал эти изображения через regex101.