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.