Match lengths are measured in characters, not collating elements. A null string is considered longer than no match at all. If case-independent matching is specified, the effect is much as if all case distinctions had vanished from the alphabet. Having two kinds of REs is a botch. Avoid relying on it.
Back references are a dreadful botch, posing major problems for efficient implementations.
Avoid using them. 1003.2's specification of case-independent matching is vague.