I'm curious if this type could one day implement the `Index` trait (basically leverage the `foo[bar]` syntax). Do you know which of these methods would be most appropriate for that?

It seems a bit odd to me that `pos` has the same return value for an empty match and an out-of-bounds index (and that kinds leaks over to `at` as well). Did you find precedent in other regex engines? Just something to think about, I'm ok with it as-is due to the `len()` method being available.