Enhanced regular expression language (ERE): Atomic expressions: A The empty traversal at class A lnk a link of type lnk ("any" is a special case of any link type) For combining expressions, the usual regular expression crowd: . concatenation \cap intersection \cup union * repetition not negation Note that A is like an empty string; the traversal that just sits at class A. As with all empty strings, A.A = A Translation of series-parallel strategies to ERE (enhanced regular expressions): [A,B] A.any*.B through edges any*.lnk.any* bypassing edges not(any*.lnk.any*) through vertices any*.A.any* bypassing vertices not(any*.A.any*) d1 join d2 [d1].[d2] d1 merge d2 [d1]\cup[d2] d1 intersect d2 [d1]\cap[d2] not d1 not([d1]) where [x] is the translation of x into regular expressions. Of course, \cap is not strictly necessary, as it can be expressed in terms of \cup and not. Furthermore, with distribution, not can be pushed down to leaves. Conjecture for Select-Sat for strategies: [A,B] polynomial through edges " bypassing edges " through vertices " bypassing vertices " d1 join d2 polynomial d1 merge d2 polynomial d1 intersect d2 NP-complete not d1 NP-complete Conjecture for Select-Sat for ERE: A The empty traversal at class A lnk a link of type lnk ("any" is a special case of any link type) . concatenation polynomial \cup union polynomial * repetition polynomial \cap intersection NP-complete not negation NP-complete