I'm fine with merging this (I will do a quick bench first though), but could you reorder you comparisons to always use `<=`, and sort them in increasing order? It reads much more naturally that way:

```D
return '0' <= c && c <= 'f' && (c <= '9' || 'a' <= c || ('A' <= c && c <= 'F'));
```