match="a[@test='true']": a2 in doc element
) Rule6(match="a[emph]": a3 in doc element with Rule3(match="emph": mixed) text
)match="a[@test='true']": a0 in c0 element
) Rule9(match="c/a": a1 in c0 element
) Rule8(match="a[@test='true']": a2 in c0 element
) Rule7(match="c/a[emph]": a2 in c0 element with Rule3(match="emph": mixed) text
) Rule2( Rule2( Rule2(f inside of e) ) ) Rule2( Rule2(f inside of d) ) ) )