This could be more specific since these will always be SubStrings of ByteStrings – maybe we should convert all strings to UTF8String first and then this can be `SubString{UTF8String}`, which is completely concrete. Of course, there's still the `Nothing` issue, but at least in the cases where the match isn't `Nothing` we'll know exactly what it is.