Регулярное выражение. Возможен ли "сброс" нумерации подмасок?

Placido

Наблюдаю
Заранее оговорюсь, вопрос не имеет никакого отношения к парсингу или воровству контента. Задаю его исключительно "в целях повышения образованности".

Если очень упрощенно, то, есть, скажем, три слова. Мне необходимо написать регулярное выражение, которое будет выбирать полные слова в одну подмаску, третью букву с конца - во вторую, а последнюю букву слова - в третью. Это лишь упрощенный пример, в реальности в подмасках не одна буква, а определенный шаблон.

В Notepad++, например, поддерживается конструкция, которая "сбрасывает" нумерацию подмасок, и можно сделать вот так:
((?|ар(б)у(з)|ба(н)а(н)|виног(р)а(д)))
получим
\1 арбуз, банан, виноград
\2 б, н, р
\3 з, н, д
Но PHP на такой синтаксис ругается.

Хотелось бы узнать, как это можно сделать?

Заранее спасибо.
 

Placido

Наблюдаю
Решил проблему. Все это работает и в PHP, но, оказывается, в PHP между "?" и "!" нельзя ставить перенос строки (как это сделал я у себя в коде), даже если установлен модификатор "x". Немного странно, конечно. Если поставить модификатор "x" в Нотпаде++, то там все работает и с переносом строки.
 
Сверху