src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (41)
121return new RegexNode(RegexNodeKind.One, options & ~RegexOptions.IgnoreCase, ch);
131return new RegexNode(RegexNodeKind.One, options, ch);
152Kind += kind - RegexNodeKind.One;
287case RegexNodeKind.One:
725case RegexNodeKind.One:
962case RegexNodeKind.One:
1026Kind == RegexNodeKind.Set ? RegexNodeKind.One :
1161else if (at.Kind is RegexNodeKind.Set or RegexNodeKind.One)
1190if (prev.Kind == RegexNodeKind.One)
1200if (at.Kind == RegexNodeKind.One)
1263case RegexNodeKind.One or RegexNodeKind.Notone or RegexNodeKind.Set:
1414if (startingNode.Kind == RegexNodeKind.One)
1434if (startingNode.Kind == RegexNodeKind.One)
1479new RegexNode(RegexNodeKind.One, startingNodeOptions, startingSpan[0]) :
1493if (node.Kind == RegexNodeKind.One)
1511node.Kind = RegexNodeKind.One;
1551return branch.Kind is RegexNodeKind.One or RegexNodeKind.Multi ? branch : null;
1557Debug.Assert(Kind is RegexNodeKind.One or RegexNodeKind.Multi || (IsOneFamily && M > 0));
1642case RegexNodeKind.One:
1677case RegexNodeKind.One or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic or RegexNodeKind.Onelazy:
1820else if (at.Kind is RegexNodeKind.Multi or RegexNodeKind.One)
1834if (prev.Kind == RegexNodeKind.One)
1841((at.Kind == RegexNodeKind.One) ? $"{prev.Str}{at.Ch}" : prev.Str + at.Str) :
1842((at.Kind == RegexNodeKind.One) ? $"{at.Ch}{prev.Str}" : at.Str + prev.Str);
1931case RegexNodeKind.Oneloop or RegexNodeKind.Onelazy when nextNode.Kind == RegexNodeKind.One && currentNode.Ch == nextNode.Ch:
1981nextNode.Kind = RegexNodeKind.One;
1999case RegexNodeKind.One when (nextNode.Kind is RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic or RegexNodeKind.Onelazy) && currentNode.Ch == nextNode.Ch:
2159RegexNodeKind.One or RegexNodeKind.Notone or RegexNodeKind.Set &&
2413case RegexNodeKind.One when CharInLoopSet(loopNode, literal.Ch): // e.g. \w+a\s : 'a' is in \w, check \s is disjoint
2538case RegexNodeKind.One when node.Ch != subsequent.Ch:
2568case RegexNodeKind.One when node.Ch == subsequent.Ch:
2587case RegexNodeKind.One when !RegexCharClass.CharInClass(subsequent.Ch, node.Str!):
2634case RegexNodeKind.One when !CharInStartingOrEndingSet(subsequent.Ch):
2843case RegexNodeKind.One:
2956case RegexNodeKind.One:
3133if (child.Kind is RegexNodeKind.One)
3245RegexNodeKind.One or RegexNodeKind.Notone or RegexNodeKind.Set => true,
3297case <= MultiVsRepeaterLimit when Kind == RegexNodeKind.One:
3312case RegexNodeKind.One:
3453public bool IsOneFamily => Kind is RegexNodeKind.One or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic or RegexNodeKind.Onelazy;
3513case RegexNodeKind.One: