Как исполнить функцию условных операторов в регулярном выражении?
https://regex101.com/r/IHgidB/1^(?:1()|2()|3())/sometext/sometext/(?:\1first|\2second|\3third)$
https://regex101.com/r/IHgidB/2^(?:1()|2()|3())/sometext/sometext/(?(1)first)(?(2)second)(?(3)third)$условные подмаски
https://regex101.com/r/IHgidB/3^(?:1(/sometext/sometext/)first|2(?1)second|3(?1)third)$рекурсивные подмаски
в perl'е что-то похожее можно сделать:$_='1/sometext/sometext/first';
s/^(1|2|3|.*)(.*)(\/.*?)$/($1==1?"$2\/first":""|$1==2?"$2\/second":""|$1==3?"$2\/third":"")=~"\/sometext\/sometext$3"?1:0/e;
print;
если 1 - есть совпадение, если 0 - нету. единственное требование для данного выражения - в строке должен быть хотя бы один символ /, иначе регулярка не отработает как надо.
ну и для php это, видимо, не сработает, там синтаксис другой.