I suspect that POSIX is trying to deal with non-contiguous alphabets, that is, alphabets where [a-z] does not include all lower-case letters. Their syntax is quite ugly, though.