What have `AbstractUnicode` todo with `mb_strtolower`? It's because there are two filters require `mb_strtolower` / `mb_strtoupper` but the abstract class shouldn't know about that. To solve it we could use `Zend\Stdlib\StringUtils` if we find a way to get a wrapper supporting case convertings as `iconv` doesn't support it and the native `strtolower`/`strtoupper` functions doesn't support all single byte encodings as the native wrapper says. (PS: The `intl` wrapper can support it with `Normalizer::normalize` + native case functions)