Как вы сопоставляете ^ (начало строки) и $ (конец строки) в [] (группа символов)?
простой пример
строка сена: zazty
правила:
- соответствуют любым "z" или "y"
- если предшествует
- "a", "b"; или
- в начале строки.
проход: совпадают первые два "z"
regexp, который будет работать: (?:^|[aAbB])([zZyY])
Но я продолжаю думать, что это было бы намного чище, с чем-то вроде начала/конца строки внутри группы персонажей [^aAbB]([zZyY])
(в этом примере предполагается, что ^ означает начало строки, а не то, что на самом деле есть, отрицательный для группы символов)
Примечание: использование python. но зная, что на bash и vim тоже будет хорошо.
Обновление: снова прочитайте руководство, которое указано для набора символов, все потеряет особое значение, за исключением классов символов (например, \w)
вниз в списке классов символов, там \A для начала строки, но это не работает [\AaAbB]([zZyY])
Любая идея, почему?