| File: Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\RegexGenerator.g.cs | |
| Project: Microsoft.DotNet.Cli.InternalMicrosoft.csproj (Microsoft.DotNet.Cli.InternalMicrosoft) |
// <auto-generated/> #nullable enable #pragma warning disable namespace Microsoft.DotNet.Cli.InternalMicrosoft { partial class InternalMicrosoftDetectionUtilities { /// <remarks> /// Pattern:<br/> /// <code>^[A-Za-z0-9._-]+$</code><br/> /// Options:<br/> /// <code>RegexOptions.CultureInvariant</code><br/> /// Explanation:<br/> /// <code> /// ○ Match if at the beginning of the string.<br/> /// ○ Match a character in the set [\-.0-9A-Z_a-z] atomically at least once.<br/> /// ○ Match if at the end of the string or if before an ending newline.<br/> /// </code> /// </remarks> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] private static partial global::System.Text.RegularExpressions.Regex AliasRegex() => global::System.Text.RegularExpressions.Generated.AliasRegex_0.Instance; } } namespace Microsoft.DotNet.Cli.InternalMicrosoft { partial class InternalMicrosoftDetectionUtilities { /// <remarks> /// Pattern:<br/> /// <code>^[A-Za-z0-9._-]+$</code><br/> /// Options:<br/> /// <code>RegexOptions.CultureInvariant</code><br/> /// Explanation:<br/> /// <code> /// ○ Match if at the beginning of the string.<br/> /// ○ Match a character in the set [\-.0-9A-Z_a-z] atomically at least once.<br/> /// ○ Match if at the end of the string or if before an ending newline.<br/> /// </code> /// </remarks> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] private static partial global::System.Text.RegularExpressions.Regex DomainRegex() => global::System.Text.RegularExpressions.Generated.AliasRegex_0.Instance; } } namespace Microsoft.DotNet.Cli.InternalMicrosoft { partial class InternalMicrosoftDetectionUtilities { /// <remarks> /// Pattern:<br/> /// <code>^(gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]{20,})$</code><br/> /// Options:<br/> /// <code>RegexOptions.CultureInvariant</code><br/> /// Explanation:<br/> /// <code> /// ○ Match if at the beginning of the string.<br/> /// ○ 1st capture group.<br/> /// ○ Match 'g'.<br/> /// ○ Match with 2 alternative expressions.<br/> /// ○ Match a sequence of expressions.<br/> /// ○ Match 'h'.<br/> /// ○ Match a character in the set [oprsu].<br/> /// ○ Match '_'.<br/> /// ○ Match a character in the set [0-9A-Z_a-z] atomically at least 20 times.<br/> /// ○ Match a sequence of expressions.<br/> /// ○ Match the string "ithub_pat_".<br/> /// ○ Match a character in the set [0-9A-Z_a-z] atomically at least 20 times.<br/> /// ○ Match if at the end of the string or if before an ending newline.<br/> /// </code> /// </remarks> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] private static partial global::System.Text.RegularExpressions.Regex GitHubTokenRegex() => global::System.Text.RegularExpressions.Generated.GitHubTokenRegex_1.Instance; } } namespace Microsoft.DotNet.Cli.InternalMicrosoft { partial class InternalMicrosoftDetectionUtilities { /// <remarks> /// Pattern:<br/> /// <code>(?<![A-Za-z0-9_])(?<token>gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]{20,})(?![A-Za-z0-9_])</code><br/> /// Options:<br/> /// <code>RegexOptions.CultureInvariant</code><br/> /// Explanation:<br/> /// <code> /// ○ Zero-width negative lookbehind.<br/> /// ○ Match a character in the set [0-9A-Z_a-z] right-to-left.<br/> /// ○ "token" capture group.<br/> /// ○ Match 'g'.<br/> /// ○ Match with 2 alternative expressions.<br/> /// ○ Match a sequence of expressions.<br/> /// ○ Match 'h'.<br/> /// ○ Match a character in the set [oprsu].<br/> /// ○ Match '_'.<br/> /// ○ Match a character in the set [0-9A-Z_a-z] greedily at least 20 times.<br/> /// ○ Match a sequence of expressions.<br/> /// ○ Match the string "ithub_pat_".<br/> /// ○ Match a character in the set [0-9A-Z_a-z] greedily at least 20 times.<br/> /// ○ Zero-width negative lookahead.<br/> /// ○ Match a character in the set [0-9A-Z_a-z].<br/> /// </code> /// </remarks> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] private static partial global::System.Text.RegularExpressions.Regex GitHubTokenValueRegex() => global::System.Text.RegularExpressions.Generated.GitHubTokenValueRegex_2.Instance; } } namespace System.Text.RegularExpressions.Generated { using System; using System.Buffers; using System.CodeDom.Compiler; using System.Collections; using System.ComponentModel; using System.Globalization; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using System.Threading; /// <summary>Custom <see cref="Regex"/>-derived type for the AliasRegex method.</summary> [GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] file sealed class AliasRegex_0 : Regex { /// <summary>Cached, thread-safe singleton instance.</summary> internal static readonly AliasRegex_0 Instance = new(); /// <summary>Initializes the instance.</summary> private AliasRegex_0() { base.pattern = "^[A-Za-z0-9._-]+$"; base.roptions = RegexOptions.CultureInvariant; ValidateMatchTimeout(Utilities.s_defaultTimeout); base.internalMatchTimeout = Utilities.s_defaultTimeout; base.factory = new RunnerFactory(); base.capsize = 1; } /// <summary>Provides a factory for creating <see cref="RegexRunner"/> instances to be used by methods on <see cref="Regex"/>.</summary> private sealed class RunnerFactory : RegexRunnerFactory { /// <summary>Creates an instance of a <see cref="RegexRunner"/> used by methods on <see cref="Regex"/>.</summary> protected override RegexRunner CreateInstance() => new Runner(); /// <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary> private sealed class Runner : RegexRunner { /// <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> protected override void Scan(ReadOnlySpan<char> inputSpan) { // The pattern is anchored. Validate the current position and try to match at it only. if (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan)) { base.runtextpos = inputSpan.Length; } } /// <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if a possible match was found; false if no more matches are possible.</returns> private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; // Empty matches aren't possible. if ((uint)pos < (uint)inputSpan.Length) { // The pattern leads with a beginning (\A) anchor. if (pos == 0) { return true; } } // No match found. base.runtextpos = inputSpan.Length; return false; } /// <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if the regular expression matches at the current position; otherwise, false.</returns> private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; int matchStart = pos; ReadOnlySpan<char> slice = inputSpan.Slice(pos); // Match if at the beginning of the string. if (pos != 0) { return false; // The input didn't match. } // Match a character in the set [\-.0-9A-Z_a-z] atomically at least once. { int iteration = slice.IndexOfAnyExcept(Utilities.s_asciiLettersAndDigitsAndDashDotUnderscore); if (iteration < 0) { iteration = slice.Length; } if (iteration == 0) { return false; // The input didn't match. } slice = slice.Slice(iteration); pos += iteration; } // Match if at the end of the string or if before an ending newline. if (pos < inputSpan.Length - 1 || ((uint)pos < (uint)inputSpan.Length && inputSpan[pos] != '\n')) { return false; // The input didn't match. } // The input matched. base.runtextpos = pos; base.Capture(0, matchStart, pos); return true; } } } } /// <summary>Custom <see cref="Regex"/>-derived type for the GitHubTokenRegex method.</summary> [GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] file sealed class GitHubTokenRegex_1 : Regex { /// <summary>Cached, thread-safe singleton instance.</summary> internal static readonly GitHubTokenRegex_1 Instance = new(); /// <summary>Initializes the instance.</summary> private GitHubTokenRegex_1() { base.pattern = "^(gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]{20,})$"; base.roptions = RegexOptions.CultureInvariant; ValidateMatchTimeout(Utilities.s_defaultTimeout); base.internalMatchTimeout = Utilities.s_defaultTimeout; base.factory = new RunnerFactory(); base.capsize = 2; } /// <summary>Provides a factory for creating <see cref="RegexRunner"/> instances to be used by methods on <see cref="Regex"/>.</summary> private sealed class RunnerFactory : RegexRunnerFactory { /// <summary>Creates an instance of a <see cref="RegexRunner"/> used by methods on <see cref="Regex"/>.</summary> protected override RegexRunner CreateInstance() => new Runner(); /// <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary> private sealed class Runner : RegexRunner { /// <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> protected override void Scan(ReadOnlySpan<char> inputSpan) { // The pattern is anchored. Validate the current position and try to match at it only. if (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan)) { base.runtextpos = inputSpan.Length; } } /// <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if a possible match was found; false if no more matches are possible.</returns> private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; // Any possible match is at least 24 characters. if (pos <= inputSpan.Length - 24) { // The pattern leads with a beginning (\A) anchor. if (pos == 0) { return true; } } // No match found. base.runtextpos = inputSpan.Length; return false; } /// <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if the regular expression matches at the current position; otherwise, false.</returns> private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; int matchStart = pos; int capture_starting_pos = 0; uint charMinusLowUInt32; ReadOnlySpan<char> slice = inputSpan.Slice(pos); // Match if at the beginning of the string. if (pos != 0) { UncaptureUntil(0); return false; // The input didn't match. } // 1st capture group. //{ capture_starting_pos = pos; // Match 'g'. if (slice.IsEmpty || slice[0] != 'g') { UncaptureUntil(0); return false; // The input didn't match. } // Match with 2 alternative expressions. //{ if ((uint)slice.Length < 2) { UncaptureUntil(0); return false; // The input didn't match. } switch (slice[1]) { case 'h': if ((uint)slice.Length < 4 || ((int)((0xDA000000U << (short)(charMinusLowUInt32 = (ushort)(slice[2] - 'o'))) & (charMinusLowUInt32 - 32)) >= 0) || // Match a character in the set [oprsu]. slice[3] != '_') // Match '_'. { UncaptureUntil(0); return false; // The input didn't match. } // Match a character in the set [0-9A-Z_a-z] atomically at least 20 times. { int iteration = slice.Slice(4).IndexOfAnyExcept(Utilities.s_asciiWordChars); if (iteration < 0) { iteration = slice.Length - 4; } if (iteration < 20) { UncaptureUntil(0); return false; // The input didn't match. } slice = slice.Slice(iteration); pos += iteration; } pos += 4; slice = inputSpan.Slice(pos); break; case 'i': // Match the string "thub_pat_". if (!slice.Slice(2).StartsWith("thub_pat_")) { UncaptureUntil(0); return false; // The input didn't match. } // Match a character in the set [0-9A-Z_a-z] atomically at least 20 times. { int iteration1 = slice.Slice(11).IndexOfAnyExcept(Utilities.s_asciiWordChars); if (iteration1 < 0) { iteration1 = slice.Length - 11; } if (iteration1 < 20) { UncaptureUntil(0); return false; // The input didn't match. } slice = slice.Slice(iteration1); pos += iteration1; } pos += 11; slice = inputSpan.Slice(pos); break; default: UncaptureUntil(0); return false; // The input didn't match. } //} base.Capture(1, capture_starting_pos, pos); //} // Match if at the end of the string or if before an ending newline. if (pos < inputSpan.Length - 1 || ((uint)pos < (uint)inputSpan.Length && inputSpan[pos] != '\n')) { UncaptureUntil(0); return false; // The input didn't match. } // The input matched. base.runtextpos = pos; base.Capture(0, matchStart, pos); return true; // <summary>Undo captures until it reaches the specified capture position.</summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] void UncaptureUntil(int capturePosition) { while (base.Crawlpos() > capturePosition) { base.Uncapture(); } } } } } } /// <summary>Custom <see cref="Regex"/>-derived type for the GitHubTokenValueRegex method.</summary> [GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] file sealed class GitHubTokenValueRegex_2 : Regex { /// <summary>Cached, thread-safe singleton instance.</summary> internal static readonly GitHubTokenValueRegex_2 Instance = new(); /// <summary>Initializes the instance.</summary> private GitHubTokenValueRegex_2() { base.pattern = "(?<![A-Za-z0-9_])(?<token>gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]{20,})(?![A-Za-z0-9_])"; base.roptions = RegexOptions.CultureInvariant; ValidateMatchTimeout(Utilities.s_defaultTimeout); base.internalMatchTimeout = Utilities.s_defaultTimeout; base.factory = new RunnerFactory(); base.CapNames = new Hashtable { { "0", 0 } , { "token", 1 } }; base.capslist = new string[] {"0", "token" }; base.capsize = 2; } /// <summary>Provides a factory for creating <see cref="RegexRunner"/> instances to be used by methods on <see cref="Regex"/>.</summary> private sealed class RunnerFactory : RegexRunnerFactory { /// <summary>Creates an instance of a <see cref="RegexRunner"/> used by methods on <see cref="Regex"/>.</summary> protected override RegexRunner CreateInstance() => new Runner(); /// <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary> private sealed class Runner : RegexRunner { /// <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> protected override void Scan(ReadOnlySpan<char> inputSpan) { // Search until we can't find a valid starting position, we find a match, or we reach the end of the input. while (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan) && base.runtextpos != inputSpan.Length) { base.runtextpos++; if (Utilities.s_hasTimeout) { base.CheckTimeout(); } } } /// <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if a possible match was found; false if no more matches are possible.</returns> private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; // Any possible match is at least 24 characters. if (pos <= inputSpan.Length - 24) { // The pattern begins with a character in the set g. // Find the next occurrence. If it can't be found, there's no match. int i = inputSpan.Slice(pos).IndexOf('g'); if (i >= 0) { base.runtextpos = pos + i; return true; } } // No match found. base.runtextpos = inputSpan.Length; return false; } /// <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary> /// <param name="inputSpan">The text being scanned by the regular expression.</param> /// <returns>true if the regular expression matches at the current position; otherwise, false.</returns> private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan) { int pos = base.runtextpos; int matchStart = pos; char ch; int alternation_branch = 0; int alternation_starting_capturepos = 0; int alternation_starting_pos = 0; int capture_starting_pos = 0; int charloop_capture_pos = 0; int charloop_capture_pos1 = 0; int charloop_starting_pos = 0, charloop_ending_pos = 0; int charloop_starting_pos1 = 0, charloop_ending_pos1 = 0; int stackpos = 0; uint charMinusLowUInt32; ReadOnlySpan<char> slice = inputSpan.Slice(pos); // Zero-width negative lookbehind. { slice = inputSpan.Slice(pos); int negativelookbehind__starting_pos = pos; if (Utilities.s_hasTimeout) { base.CheckTimeout(); } int atomic_stackpos = stackpos; // Match a character in the set [0-9A-Z_a-z] right-to-left. if ((uint)(pos - 1) >= inputSpan.Length || ((ch = inputSpan[pos - 1]) >= '{' || ("\0\0\0Ͽ\ufffe蟿\ufffe߿"[ch >> 4] & (1 << (ch & 0xF))) == 0)) { goto NegativeLookaroundMatch; } pos--; stackpos = atomic_stackpos; UncaptureUntil(0); return false; // The input didn't match. NegativeLookaroundMatch: pos = negativelookbehind__starting_pos; slice = inputSpan.Slice(pos); } // "token" capture group. //{ capture_starting_pos = pos; // Match 'g'. if (slice.IsEmpty || slice[0] != 'g') { UncaptureUntil(0); return false; // The input didn't match. } // Match with 2 alternative expressions. //{ alternation_starting_pos = pos; alternation_starting_capturepos = base.Crawlpos(); // Branch 0 //{ if ((uint)slice.Length < 4 || slice[1] != 'h' || // Match 'h'. ((int)((0xDA000000U << (short)(charMinusLowUInt32 = (ushort)(slice[2] - 'o'))) & (charMinusLowUInt32 - 32)) >= 0) || // Match a character in the set [oprsu]. slice[3] != '_') // Match '_'. { goto AlternationBranch; } // Match a character in the set [0-9A-Z_a-z] greedily at least 20 times. //{ pos += 4; slice = inputSpan.Slice(pos); charloop_starting_pos = pos; int iteration = slice.IndexOfAnyExcept(Utilities.s_asciiWordChars); if (iteration < 0) { iteration = slice.Length; } if (iteration < 20) { goto AlternationBranch; } slice = slice.Slice(iteration); pos += iteration; charloop_ending_pos = pos; charloop_starting_pos += 20; goto CharLoopEnd; CharLoopBacktrack: UncaptureUntil(charloop_capture_pos); if (Utilities.s_hasTimeout) { base.CheckTimeout(); } if (charloop_starting_pos >= charloop_ending_pos) { goto AlternationBranch; } pos = --charloop_ending_pos; slice = inputSpan.Slice(pos); CharLoopEnd: charloop_capture_pos = base.Crawlpos(); //} alternation_branch = 0; goto AlternationMatch; AlternationBranch: pos = alternation_starting_pos; slice = inputSpan.Slice(pos); UncaptureUntil(alternation_starting_capturepos); //} // Branch 1 //{ // Match the string "ithub_pat_". if (!slice.Slice(1).StartsWith("ithub_pat_")) { UncaptureUntil(0); return false; // The input didn't match. } // Match a character in the set [0-9A-Z_a-z] greedily at least 20 times. //{ pos += 11; slice = inputSpan.Slice(pos); charloop_starting_pos1 = pos; int iteration1 = slice.IndexOfAnyExcept(Utilities.s_asciiWordChars); if (iteration1 < 0) { iteration1 = slice.Length; } if (iteration1 < 20) { UncaptureUntil(0); return false; // The input didn't match. } slice = slice.Slice(iteration1); pos += iteration1; charloop_ending_pos1 = pos; charloop_starting_pos1 += 20; goto CharLoopEnd1; CharLoopBacktrack1: UncaptureUntil(charloop_capture_pos1); if (Utilities.s_hasTimeout) { base.CheckTimeout(); } if (charloop_starting_pos1 >= charloop_ending_pos1) { UncaptureUntil(0); return false; // The input didn't match. } pos = --charloop_ending_pos1; slice = inputSpan.Slice(pos); CharLoopEnd1: charloop_capture_pos1 = base.Crawlpos(); //} alternation_branch = 1; goto AlternationMatch; //} AlternationBacktrack: if (Utilities.s_hasTimeout) { base.CheckTimeout(); } switch (alternation_branch) { case 0: goto CharLoopBacktrack; case 1: goto CharLoopBacktrack1; } AlternationMatch:; //} base.Capture(1, capture_starting_pos, pos); goto CaptureSkipBacktrack; CaptureBacktrack: goto AlternationBacktrack; CaptureSkipBacktrack:; //} // Zero-width negative lookahead. { slice = inputSpan.Slice(pos); int negativelookahead__starting_pos = pos; if (Utilities.s_hasTimeout) { base.CheckTimeout(); } int atomic_stackpos1 = stackpos; // Match a character in the set [0-9A-Z_a-z]. if (slice.IsEmpty || ((ch = slice[0]) >= '{' || ("\0\0\0Ͽ\ufffe蟿\ufffe߿"[ch >> 4] & (1 << (ch & 0xF))) == 0)) { goto NegativeLookaroundMatch1; } stackpos = atomic_stackpos1; goto CaptureBacktrack; NegativeLookaroundMatch1: pos = negativelookahead__starting_pos; slice = inputSpan.Slice(pos); } // The input matched. base.runtextpos = pos; base.Capture(0, matchStart, pos); return true; // <summary>Undo captures until it reaches the specified capture position.</summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] void UncaptureUntil(int capturePosition) { while (base.Crawlpos() > capturePosition) { base.Uncapture(); } } } } } } /// <summary>Helper methods used by generated <see cref="Regex"/>-derived implementations.</summary> [GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "12.0.15.222")] file static class Utilities { /// <summary>Default timeout value set in <see cref="AppContext"/>, or <see cref="Regex.InfiniteMatchTimeout"/> if none was set.</summary> internal static readonly TimeSpan s_defaultTimeout = AppContext.GetData("REGEX_DEFAULT_MATCH_TIMEOUT") is TimeSpan timeout ? timeout : Regex.InfiniteMatchTimeout; /// <summary>Whether <see cref="s_defaultTimeout"/> is non-infinite.</summary> internal static readonly bool s_hasTimeout = s_defaultTimeout != Regex.InfiniteMatchTimeout; /// <summary>Supports searching for characters in or not in "-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".</summary> internal static readonly SearchValues<char> s_asciiLettersAndDigitsAndDashDotUnderscore = SearchValues.Create("-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"); /// <summary>Supports searching for characters in or not in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".</summary> internal static readonly SearchValues<char> s_asciiWordChars = SearchValues.Create("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"); } }