Есть следующий входной текст:
X
X (+ Y)
На выходе должно быть два совпадения:
MATCH 1
1. 'X'
MATCH 2
1. 'X'
2. 'Y'
То есть, если в строке есть блок (+ Y), то X выделить в первую группу, Y - во вторую группу.
Если блока (+ Y) нет, то просто выделить X в первую группу.
Предполагаю, что нужно использовать lookahead, либо правильно настроить жадность, но попытки не увенчались успехом.
Я отталкиваюсь от данного регулярного выражения:
(x\s)(?=(\+\s)(y)|(x))
Спасибо за помощь!