BASE <http://a.example/>

ABSTRACT <A>                     /sA..........$/
                             AND
                                 { <p> [0 1 2 3 4 5 6 7 8 9]+ }
ABSTRACT <B> EXTENDS @<A> {}
                             AND /s.B.........$/
                             AND
                                 { <p> [0 1   3 4 5 6 7 8 9]+ }
         <C>                     /s..C........$/
                             AND
                                 { <p> [0 1 2   4 5 6 7 8 9]+ }
ABSTRACT <D> EXTENDS @<B> {} AND
                     @<C>
                             AND /s...D.......$/
                             AND
                                 { <p> [0 1 2 3   5 6 7 8 9]+ }
ABSTRACT <E>                     /s....E......$/
                             AND
             EXTENDS @<D>
                                 { <p> [    2              ] }
         <F>                     /s.....F.....$/
                             AND
                                 { <p> [      3            ] }
ABSTRACT <G>                     /s......G....$/
                             AND
             EXTENDS @<E>
             EXTENDS @<F>
                                 { <p> [        4          ] }
ABSTRACT <H> EXTENDS @<G> {} AND /s.......H...$/
                             AND
                                 { <p> [0 1 2 3 4 5     8 9]* }
         <I>                     /s........I..$/
                             AND
                                 { <q> [          5        ] }
         <J> EXTENDS @<H> {}
                             AND /s.........J.$/
                             AND
             EXTENDS @<I>
                                 { <q> [            6      ] }

# 0 1 2 3 4 5 6 7 8 9+                         
# 0 1   3 4 5 6 7 8 9+                         
#       -            +                         
# 0 1       5 6 7 8 9+                         
# 0 1 +     5 6 7 8 9+, p:2                    
#       +               p:3                    
# 0 1     + 5 6 7 8 9+, p:2, p:3, p:4          
# 0 1       5     8 9+, p:2, p:3, p:4          
#           +                          q:5     
# 0 1             8 9*, p:2, p:3, p:4, q:5, q:6

# ABSTRACT <A>           /sA..........$/ AND           { <p> [0 1 2 3 4 5 6 7 8 9]+}
# abstract <B> -<A>      /s.B.........$/ and           { <p> [0 1   3 4 5 6 7 8 9]+}
#          <C>           /s..C........$/ and           { <p> [0 1 2   4 5 6 7 8 9]+}
# abstract <D> -<B> -<C> /s...D.......$/ and           { <p> [0 1 2 3   5 6 7 8 9]+}
# abstract <E>           /s....E......$/ and &<D>      { <p> [    2              ] }
#          <F>           /s.....F.....$/ and           { <p> [      3            ] }
# abstract <G>           /s......G....$/ and &<E> &<F> { <p> [        4          ] }
# abstract <H> -<G>      /s.......H...$/ and           { <p> [0 1 2 3 4 5     8 9]*}
#          <I>           /s........I..$/ and           { <q> [          5        ] }
#          <J> -<H>      /s.........J.$/ and &<I>      { <q> [            6      ] }
