Only reverse top-level repeater matches

When matching on lookbehind, repeater vars go in reversed, which we have
to correct. Previously it was doing it for all `level: 1` matches, but
what we actually need is to do it for `topLevel` patterns. This adds
a `topLevel` key to match objects so we can make the distinction.
build