src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCharClass.cs (54)
432int strLength = SetStartIndex + set.Length + category.Length;
453state.set.AsSpan(2).CopyTo(span.Slice(SetStartIndex));
454index = SetStartIndex + state.set.Length - 2;
461state.set.AsSpan().CopyTo(span.Slice(SetStartIndex));
462index = SetStartIndex + state.set.Length;
475return set[SetStartIndex];
501(set[SetStartIndex] == LastChar || set[SetStartIndex] + 1 == set[SetStartIndex + 1]);
508(set[SetStartIndex] == LastChar || set[SetStartIndex] + 1 == set[SetStartIndex + 1]);
533int categoryEnd = SetStartIndex + set[CategoryLengthIndex];
534for (int pos = SetStartIndex; pos < categoryEnd; pos++)
637set.Length == SetStartIndex + set[SetLengthIndex]) // and no subtraction
642lowInclusive = set[SetStartIndex];
647lowInclusive = set[SetStartIndex];
648highInclusive = (char)(set[SetStartIndex + 1] - 1);
668set.Length == SetStartIndex + set[SetLengthIndex]) // and no subtraction
673range0 = (set[SetStartIndex], (char)(set[SetStartIndex + 1] - 1));
674range1 = (set[SetStartIndex + 2], setLength == 3 ? LastChar : (char)(set[SetStartIndex + 3] - 1));
720for (int i = SetStartIndex; i < SetStartIndex + setLength; i += 2)
866for (int i = SetStartIndex; i < SetStartIndex + set2[SetLengthIndex]; i += 2)
903for (int i = SetStartIndex; i < SetStartIndex + subset[SetLengthIndex]; i += 2)
1053set.Length > SetStartIndex &&
1106char firstValueInclusive = set[SetStartIndex];
1107char lastValueExclusive = set[SetStartIndex + set[SetLengthIndex] - 1];
1121ContainsNoAscii = firstValueInclusive == 0 && set[SetStartIndex + 1] >= 128,
1134AllAsciiContained = firstValueInclusive == 0 && set[SetStartIndex + 1] >= 128 && !hasSubtraction,
1143charClass.Length > SetStartIndex +
1302int endPosition = start + SetStartIndex + setLength + categoryLength;
1328int min = start + SetStartIndex;
1350Debug.Assert((SetStartIndex & 0x1) == 1, "If SetStartIndex is not odd, the calculation below this will be reversed");
1361return CharInCategory(ch, set.AsSpan(SetStartIndex + start + setLength, categoryLength));
1464int endPosition = pos + SetStartIndex + setLength + categoryLength;
1471int end = pos + SetStartIndex + setLength;
1502int i = SetStartIndex;
1605return StringExtensions.Create(SetStartIndex + count, (IntPtr)(&tmpChars), static (span, charsPtr) =>
1609span[SetLengthIndex] = (char)(span.Length - SetStartIndex);
1611int i = SetStartIndex;
1642Span<char> headerSpan = vsb.AppendSpan(SetStartIndex);
1664vsb[initialLength + SetLengthIndex] = (char)(vsb.Length - initialLength - SetStartIndex);
1883int endPosition = SetStartIndex + setLength + categoryLength;
1893set[SetStartIndex] + 1 == set[SetStartIndex + 1])
1895return DescribeChar(set[SetStartIndex]);
1898int index = SetStartIndex;
1905int rangesEnd = SetStartIndex + set[SetLengthIndex];
1960while (index < SetStartIndex + set[SetLengthIndex] + set[CategoryLengthIndex])