private CharacterSet ParsePosixCharacterClass(bool positive) {
int i = 0;
if (Peek(i) == ':') {
i++;
} else {
return null;
}
int start = _index + i;
int c;
while ((c = Peek(i)) != ':' && c != -1) {
i++;
}
if (c == -1 || Peek(i + 1) != ']') {
return null;
}
string name = _rubyPattern.Substring(start, _index + i - start);
_index += i + 2;
return MakePosixCharacterClass(ParsePosixClass(name), positive);
}