Maybe you could also try moving the `byte < 128` check to be after the `.matches` check. (I agree we need some check to maintain the `utf8` guarantee.)