    @Test
    public void test_context5() throws Exception {

        RefMatcher m = createMatcher(".(sub1)");

        Assert.assertFalse(matches(m, r1,   r12));
        Assert.assertFalse(matches(m, r2,   r12));
        Assert.assertFalse(matches(m, r11,  r12));
        Assert.assertFalse(matches(m, r12,  r12));
        Assert.assertFalse(matches(m, r21,  r12));
        Assert.assertFalse(matches(m, r22,  r12));
        Assert.assertFalse(matches(m, r111, r12));
        Assert.assertFalse(matches(m, r112, r12));
        Assert.assertTrue (matches(m, r121, r12));
        Assert.assertFalse(matches(m, r122, r12));
        Assert.assertFalse(matches(m, r211, r12));
        Assert.assertFalse(matches(m, r212, r12));
        Assert.assertFalse(matches(m, r221, r12));
        Assert.assertFalse(matches(m, r222, r12));

        List<Ref> watchedRefs = m.match(r121, r12).getBackRefs();
        Assert.assertTrue(watchedRefs.size() == 1);
        Assert.assertTrue(watchedRefs.get(0).equals(r121));
    }