Мне нужно разбить строки на части. Совпадающие шаблоны не должны присутствовать в других сопоставленных группах. Пример строки:
baranything
baranythingbaz
Ожидаемый результат:
array(
0 => baranything
1 => bar
2 => anything
3 =>
)
array(
0 => baranything
1 => bar
2 => anything
3 => baz
)
Самое простое решение может быть похоже на (bar)(.*)(baz|)
, но оно помещает всю оставшуюся строку в элемент [2] и «baz» не захватывается.