MATCH_TEST("x", UNANCHORED, "x");
MATCH_TEST("x", UNANCHORED, "xyz");
MATCH_TEST("x", UNANCHORED, "uvwx");
MATCH_TEST("x", UNANCHORED, "uvwxyz");

MATCH_TEST("x", ANCHOR_START, "x");
MATCH_TEST("x", ANCHOR_START, "xyz");
MATCH_TEST("x", ANCHOR_START, "uvwx");
MATCH_TEST("x", ANCHOR_START, "uvwxyz");

MATCH_TEST("x", ANCHOR_BOTH, "x");
MATCH_TEST("x", ANCHOR_BOTH, "xyz");
MATCH_TEST("x", ANCHOR_BOTH, "uvwx");
MATCH_TEST("x", ANCHOR_BOTH, "uvwxyz");

MATCH_TEST("x", UNANCHORED, "x");
MATCH_TEST("x", UNANCHORED, "xyz");
MATCH_TEST("x", UNANCHORED, "uvwx");
MATCH_TEST("x", UNANCHORED, "uvwxyz");

MATCH_TEST("x", ANCHOR_START, "x");
MATCH_TEST("x", ANCHOR_START, "xyz");
MATCH_TEST("x", ANCHOR_START, "uvwx");
MATCH_TEST("x", ANCHOR_START, "uvwxyz");

MATCH_TEST("x", ANCHOR_BOTH, "x");
MATCH_TEST("x", ANCHOR_BOTH, "xyz");
MATCH_TEST("x", ANCHOR_BOTH, "uvwx");
MATCH_TEST("x", ANCHOR_BOTH, "uvwxyz");

MATCH_TEST("^x", UNANCHORED, "x");
MATCH_TEST("^x", UNANCHORED, "xyz");
MATCH_TEST("^x", UNANCHORED, "uvwx");
MATCH_TEST("^x", UNANCHORED, "uvwxyz");

MATCH_TEST("x$", UNANCHORED, "x");
MATCH_TEST("x$", UNANCHORED, "xyz");
MATCH_TEST("x$", UNANCHORED, "uvwx");
MATCH_TEST("x$", UNANCHORED, "uvwxyz");

MATCH_TEST("^x$", UNANCHORED, "x");
MATCH_TEST("^x$", UNANCHORED, "xyz");
MATCH_TEST("^x$", UNANCHORED, "uvwx");
MATCH_TEST("^x$", UNANCHORED, "uvwxyz");

Add some explicit anchoring tests.
Add some explicit anchoring tests.

Those are not implemented as empty-width instructions in re2,
but as flags telling it to use an appropriate anchor mode even though
the caller might disagree. Forgetting to check `Prog::anchor_start`
or `Prog::anchor_end` is a good way to fail these tests.
