This demonstrates what I want to do:
(cl-ppcre::scan-to-strings "super(man|dog|girl|woman|boy)" "this is the story of superboy and superman.")
This matches "superboy" because it matches the first "super" and then tries each of the ORs until it finds "boy".
What I want it to do is match according to the priority I've specified in the OR list. For example, if it finds a "superman" anywhere in the target-string it should match that before trying "superdog" etc.
I know I could do this with a bit of Lisp code, but if it's possible to keep it all in the regexp I'd prefer to do that.
cl-ppcre-devel site list
CL-USER 3 > (ppcre:scan-to-strings "dog|man" "a man and his dog")
CL-USER 4 > (ppcre:scan-to-strings "dog|man(?!.*dog)" "a man and his dog")