|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable disable
using System.Text.RegularExpressions;
using Xunit;
namespace Microsoft.CodeAnalysis.CSharp.UnitTests.EmbeddedLanguages.RegularExpressions
{
// All these tests came from the example at:
// https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference
public partial class CSharpRegexParserTests
{
[Fact]
public void ReferenceTest0()
{
Test(@"@""[aeiou]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>aeiou</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""[aeiou]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest1()
{
Test(@"@""(?<duplicateWord>\w+)\s\k<duplicateWord>\W(?<nextWord>\w+)""", @"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""duplicateWord"">duplicateWord</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""duplicateWord"">duplicateWord</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""nextWord"">nextWord</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..68)"" Text=""(?<duplicateWord>\w+)\s\k<duplicateWord>\W(?<nextWord>\w+)"" />
<Capture Name=""1"" Span=""[10..31)"" Text=""(?<duplicateWord>\w+)"" />
<Capture Name=""2"" Span=""[52..68)"" Text=""(?<nextWord>\w+)"" />
<Capture Name=""duplicateWord"" Span=""[10..31)"" Text=""(?<duplicateWord>\w+)"" />
<Capture Name=""nextWord"" Span=""[52..68)"" Text=""(?<nextWord>\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest2()
{
Test(@"@""((?<One>abc)\d+)?(?<Two>xyz)(.*)""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""One"">One</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>abc</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""Two"">Two</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>xyz</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..42)"" Text=""((?<One>abc)\d+)?(?<Two>xyz)(.*)"" />
<Capture Name=""1"" Span=""[10..26)"" Text=""((?<One>abc)\d+)"" />
<Capture Name=""2"" Span=""[38..42)"" Text=""(.*)"" />
<Capture Name=""3"" Span=""[11..22)"" Text=""(?<One>abc)"" />
<Capture Name=""4"" Span=""[27..38)"" Text=""(?<Two>xyz)"" />
<Capture Name=""One"" Span=""[11..22)"" Text=""(?<One>abc)"" />
<Capture Name=""Two"" Span=""[27..38)"" Text=""(?<Two>xyz)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest3()
{
Test(@"@""(\w+)\s(\1)""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""(\w+)\s(\1)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(\w+)"" />
<Capture Name=""2"" Span=""[17..21)"" Text=""(\1)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest4()
{
Test(@"@""\Bqu\w+""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>B</TextToken>
</AnchorEscape>
<Text>
<TextToken>qu</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""\Bqu\w+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest5()
{
Test(@"@""\bare\w*\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>are</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""\bare\w*\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest6()
{
Test(@"@""\G(\w+\s?\w*),?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>G</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""\G(\w+\s?\w*),?"" />
<Capture Name=""1"" Span=""[12..23)"" Text=""(\w+\s?\w*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest7()
{
Test(@"@""\D+(?<digit>\d+)\D+(?<digit>\d+)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""digit"">digit</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""digit"">digit</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..43)"" Text=""\D+(?<digit>\d+)\D+(?<digit>\d+)?"" />
<Capture Name=""1"" Span=""[13..26)"" Text=""(?<digit>\d+)"" />
<Capture Name=""digit"" Span=""[13..26)"" Text=""(?<digit>\d+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest8()
{
Test(@"@""(\s\d{4}(-(\d{4}|present))?,?)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>-</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>&#124;present</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..46)"" Text=""(\s\d{4}(-(\d{4}&#124;present))?,?)+"" />
<Capture Name=""1"" Span=""[10..45)"" Text=""(\s\d{4}(-(\d{4}&#124;present))?,?)"" />
<Capture Name=""2"" Span=""[18..41)"" Text=""(-(\d{4}&#124;present))"" />
<Capture Name=""3"" Span=""[20..40)"" Text=""(\d{4}&#124;present)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest9()
{
Test(@"@""^((\w+(\s?)){2,}),\s(\w+\s\w+),(\s\d{4}(-(\d{4}|present))?,?)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OpenRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}</CloseBraceToken>
</OpenRangeNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>,</TextToken>
</Text>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>,</TextToken>
</Text>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>-</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>present</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..72)"" Text=""^((\w+(\s?)){2,}),\s(\w+\s\w+),(\s\d{4}(-(\d{4}|present))?,?)+"" />
<Capture Name=""1"" Span=""[11..27)"" Text=""((\w+(\s?)){2,})"" />
<Capture Name=""2"" Span=""[12..22)"" Text=""(\w+(\s?))"" />
<Capture Name=""3"" Span=""[16..21)"" Text=""(\s?)"" />
<Capture Name=""4"" Span=""[30..40)"" Text=""(\w+\s\w+)"" />
<Capture Name=""5"" Span=""[41..71)"" Text=""(\s\d{4}(-(\d{4}|present))?,?)"" />
<Capture Name=""6"" Span=""[49..67)"" Text=""(-(\d{4}|present))"" />
<Capture Name=""7"" Span=""[51..66)"" Text=""(\d{4}|present)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest10()
{
Test(@"@""^[0-9-[2468]]+$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>2468</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""^[0-9-[2468]]+$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest11()
{
Test(@"@""[a-z-[0-9]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>z</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""[a-z-[0-9]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest12()
{
Test(@"@""[\p{IsBasicLatin}-[\x00-\x7F]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>IsBasicLatin</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken>00</TextToken>
</HexEscape>
<MinusToken>-</MinusToken>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken>7F</TextToken>
</HexEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..40)"" Text=""[\p{IsBasicLatin}-[\x00-\x7F]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest13()
{
Test(@"@""[\u0000-\uFFFF-[\s\p{P}\p{IsGreek}\x85]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<UnicodeEscape>
<BackslashToken>\</BackslashToken>
<TextToken>u</TextToken>
<TextToken>0000</TextToken>
</UnicodeEscape>
<MinusToken>-</MinusToken>
<UnicodeEscape>
<BackslashToken>\</BackslashToken>
<TextToken>u</TextToken>
<TextToken>FFFF</TextToken>
</UnicodeEscape>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>IsGreek</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken>85</TextToken>
</HexEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..50)"" Text=""[\u0000-\uFFFF-[\s\p{P}\p{IsGreek}\x85]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest14()
{
Test(@"@""[a-z-[d-w-[m-o]]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>z</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>d</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>w</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>m</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>o</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""[a-z-[d-w-[m-o]]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest15()
{
Test(@"@""((\w+(\s?)){2,}""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OpenRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}}</CloseBraceToken>
</OpenRangeNumericQuantifier>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[25..25)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""((\w+(\s?)){{2,}}"" />
<Capture Name=""1"" Span=""[10..25)"" Text=""((\w+(\s?)){{2,}}"" />
<Capture Name=""2"" Span=""[11..21)"" Text=""(\w+(\s?))"" />
<Capture Name=""3"" Span=""[15..20)"" Text=""(\s?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest16()
{
Test(@"@""[a-z-[djp]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>z</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>djp</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""[a-z-[djp]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest17()
{
Test(@"@""^[^<>]*(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*(?(Open)(?!))$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken><</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Close"">Close</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ConditionalCaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OpenParenToken>(</OpenParenToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<CloseParenToken>)</CloseParenToken>
<Sequence>
<NegativeLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ExclamationToken>!</ExclamationToken>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</NegativeLookaheadGrouping>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalCaptureGrouping>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..78)"" Text=""^[^<>]*(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*(?(Open)(?!))$"" />
<Capture Name=""1"" Span=""[17..63)"" Text=""(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)"" />
<Capture Name=""2"" Span=""[18..36)"" Text=""((?'Open'<)[^<>]*)"" />
<Capture Name=""3"" Span=""[37..61)"" Text=""((?'Close-Open'>)[^<>]*)"" />
<Capture Name=""4"" Span=""[19..29)"" Text=""(?'Open'<)"" />
<Capture Name=""5"" Span=""[38..54)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Close"" Span=""[38..54)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Open"" Span=""[19..29)"" Text=""(?'Open'<)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void ReferenceTest18()
{
Test(@"@""((?'Close-Open'>)[^<>]*)+""", $@"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Close"">Close</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_name_0, "Open")}"" Span=""[20..24)"" Text=""Open"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..35)"" Text=""((?'Close-Open'>)[^<>]*)+"" />
<Capture Name=""1"" Span=""[10..34)"" Text=""((?'Close-Open'>)[^<>]*)"" />
<Capture Name=""2"" Span=""[11..27)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Close"" Span=""[11..27)"" Text=""(?'Close-Open'>)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void ReferenceTest19()
{
Test(@"@""(\w)\1+.\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""(\w)\1+.\b"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest20()
{
Test(@"@""\d{4}\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""\d{4}\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest21()
{
Test(@"@""\d{1,2},""", @"<Tree>
<CompilationUnit>
<Sequence>
<ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""\d{1,2},"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest22()
{
Test(@"@""(?<!(Saturday|Sunday) )\b\w+ \d{1,2}, \d{4}\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegativeLookbehindGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<ExclamationToken>!</ExclamationToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<Text>
<TextToken>Saturday</TextToken>
</Text>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>Sunday</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken> </TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NegativeLookbehindGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Text>
<TextToken> </TextToken>
</Text>
<ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<Text>
<TextToken>, </TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..55)"" Text=""(?<!(Saturday|Sunday) )\b\w+ \d{1,2}, \d{4}\b"" />
<Capture Name=""1"" Span=""[14..31)"" Text=""(Saturday|Sunday)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest23()
{
Test(@"@""(?<=\b20)\d{2}\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<PositiveLookbehindGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<EqualsToken>=</EqualsToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>20</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</PositiveLookbehindGrouping>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""(?<=\b20)\d{2}\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest24()
{
Test(@"@""\b\w+\b(?!\p{P})""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NegativeLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ExclamationToken>!</ExclamationToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NegativeLookaheadGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""\b\w+\b(?!\p{P})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest25()
{
Test(@"@""(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken><</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Close"">Close</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..57)"" Text=""(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*"" />
<Capture Name=""1"" Span=""[10..56)"" Text=""(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)"" />
<Capture Name=""2"" Span=""[11..29)"" Text=""((?'Open'<)[^<>]*)"" />
<Capture Name=""3"" Span=""[30..54)"" Text=""((?'Close-Open'>)[^<>]*)"" />
<Capture Name=""4"" Span=""[12..22)"" Text=""(?'Open'<)"" />
<Capture Name=""5"" Span=""[31..47)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Close"" Span=""[31..47)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Open"" Span=""[12..22)"" Text=""(?'Open'<)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void ReferenceTest26()
{
Test(@"@""\b(?!un)\w+\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NegativeLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ExclamationToken>!</ExclamationToken>
<Sequence>
<Text>
<TextToken>un</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NegativeLookaheadGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""\b(?!un)\w+\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest27()
{
Test(@"@""\b(?ix: d \w+)\s""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NestedOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>ix</OptionsToken>
<ColonToken>:</ColonToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NestedOptionsGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""\b(?ix: d \w+)\s"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest28()
{
Test(@"@""(?:\w+)""", @"<Tree>
<CompilationUnit>
<Sequence>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NonCapturingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?:\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest29()
{
Test(@"@""(?:\b(?:\w+)\W*)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NonCapturingGrouping>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NonCapturingGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(?:\b(?:\w+)\W*)+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest30()
{
Test(@"@""(?:\b(?:\w+)\W*)+\.""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NonCapturingGrouping>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NonCapturingGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""(?:\b(?:\w+)\W*)+\."" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest31()
{
Test(@"@""(?'Close-Open'>)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""Close"">Close</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken value=""Open"">Open</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_name_0, "Open")}"" Span=""[19..23)"" Text=""Open"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""1"" Span=""[10..26)"" Text=""(?'Close-Open'>)"" />
<Capture Name=""Close"" Span=""[10..26)"" Text=""(?'Close-Open'>)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void ReferenceTest32()
{
Test(@"@""[^<>]*""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrMoreQuantifier>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""[^<>]*"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest33()
{
Test(@"@""\b\w+(?=\sis\b)""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<PositiveLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<EqualsToken>=</EqualsToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<Text>
<TextToken>is</TextToken>
</Text>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</PositiveLookaheadGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""\b\w+(?=\sis\b)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest34()
{
Test(@"@""[a-z-[m]]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>z</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>m</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""[a-z-[m]]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest35()
{
Test(@"@""^\D\d{1,5}\D*$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
<ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""5"">5</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^\D\d{1,5}\D*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest36()
{
Test(@"@""[^0-9]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""[^0-9]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest37()
{
Test(@"@""(\p{IsGreek}+(\s)?)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>IsGreek</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..30)"" Text=""(\p{IsGreek}+(\s)?)+"" />
<Capture Name=""1"" Span=""[10..29)"" Text=""(\p{IsGreek}+(\s)?)"" />
<Capture Name=""2"" Span=""[23..27)"" Text=""(\s)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest38()
{
Test(@"@""\b(\p{IsGreek}+(\s)?)+\p{Pd}\s(\p{IsBasicLatin}+(\s)?)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>IsGreek</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Pd</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>IsBasicLatin</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..65)"" Text=""\b(\p{IsGreek}+(\s)?)+\p{Pd}\s(\p{IsBasicLatin}+(\s)?)+"" />
<Capture Name=""1"" Span=""[12..31)"" Text=""(\p{IsGreek}+(\s)?)"" />
<Capture Name=""2"" Span=""[25..29)"" Text=""(\s)"" />
<Capture Name=""3"" Span=""[40..64)"" Text=""(\p{IsBasicLatin}+(\s)?)"" />
<Capture Name=""4"" Span=""[58..62)"" Text=""(\s)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest39()
{
Test(@"@""\b.*[.?!;:](\s|\z)""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>.?!;:</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>z</TextToken>
</AnchorEscape>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..28)"" Text=""\b.*[.?!;:](\s|\z)"" />
<Capture Name=""1"" Span=""[21..28)"" Text=""(\s|\z)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest40()
{
Test(@"@""^.+""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""^.+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest41()
{
Test(@"@""[^o]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken>o</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""[^o]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest42()
{
Test(@"@""\bth[^o]\w+\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>th</TextToken>
</Text>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken>o</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""\bth[^o]\w+\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest43()
{
Test(@"@""(\P{Sc})+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Sc</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""(\P{Sc})+"" />
<Capture Name=""1"" Span=""[10..18)"" Text=""(\P{Sc})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest44()
{
Test(@"@""[^\p{P}\d]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""[^\p{P}\d]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest45()
{
Test(@"@""\b[A-Z]\w*\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>A</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>Z</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""\b[A-Z]\w*\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest46()
{
Test(@"@""\S+?""", @"<Tree>
<CompilationUnit>
<Sequence>
<LazyQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>S</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""\S+?"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest47()
{
Test(@"@""y\s""", @"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>y</TextToken>
</Text>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""y\s"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest48()
{
Test(@"@""gr[ae]y\s\S+?[\s\p{P}]""", @"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>gr</TextToken>
</Text>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>ae</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<Text>
<TextToken>y</TextToken>
</Text>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<LazyQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>S</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..32)"" Text=""gr[ae]y\s\S+?[\s\p{P}]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest49()
{
Test(@"@""[\s\p{P}]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""[\s\p{P}]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest50()
{
Test(@"@""[\p{P}\d]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>P</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""[\p{P}\d]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest51()
{
Test(@"@""[^aeiou]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken>aeiou</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""[^aeiou]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest52()
{
Test(@"@""(\w)\1""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(\w)\1"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest53()
{
Test(@"@""[^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\p{Lm}] """, @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Ll</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lu</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lt</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lo</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Nd</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Pc</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lm</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
<Text>
<TextToken> </TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..56)"" Text=""[^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\p{Lm}] "" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest54()
{
Test(@"@""[^a-zA-Z_0-9]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>z</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassRange>
<Text>
<TextToken>A</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>Z</TextToken>
</Text>
</CharacterClassRange>
<Text>
<TextToken>_</TextToken>
</Text>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""[^a-zA-Z_0-9]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest55()
{
Test(@"@""\P{Nd}""", @"<Tree>
<CompilationUnit>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Nd</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""\P{Nd}"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest56()
{
Test(@"@""(\(?\d{3}\)?[\s-])?""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<Text>
<TextToken>-</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""(\(?\d{3}\)?[\s-])?"" />
<Capture Name=""1"" Span=""[10..28)"" Text=""(\(?\d{3}\)?[\s-])"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest57()
{
Test(@"@""^(\(?\d{3}\)?[\s-])?\d{3}-\d{4}$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<Text>
<TextToken>-</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..42)"" Text=""^(\(?\d{3}\)?[\s-])?\d{3}-\d{4}$"" />
<Capture Name=""1"" Span=""[11..29)"" Text=""(\(?\d{3}\)?[\s-])"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest58()
{
Test(@"@""[0-9]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""[0-9]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest59()
{
Test(@"@""\p{Nd}""", @"<Tree>
<CompilationUnit>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Nd</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""\p{Nd}"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest60()
{
Test(@"@""\b(\S+)\s?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>S</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""\b(\S+)\s?"" />
<Capture Name=""1"" Span=""[12..17)"" Text=""(\S+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest61()
{
Test(@"@""[^ \f\n\r\t\v]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken> </TextToken>
</Text>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>f</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>n</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>r</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>t</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>v</TextToken>
</SimpleEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""[^ \f\n\r\t\v]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest62()
{
Test(@"@""[^\f\n\r\t\v\x85\p{Z}]""", @"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>f</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>n</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>r</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>t</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>v</TextToken>
</SimpleEscape>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken>85</TextToken>
</HexEscape>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Z</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..32)"" Text=""[^\f\n\r\t\v\x85\p{Z}]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest63()
{
Test(@"@""(\s|$)""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(\s|$)"" />
<Capture Name=""1"" Span=""[10..16)"" Text=""(\s|$)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest64()
{
Test(@"@""\b\w+(e)?s(\s|$)""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>e</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<Text>
<TextToken>s</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""\b\w+(e)?s(\s|$)"" />
<Capture Name=""1"" Span=""[15..18)"" Text=""(e)"" />
<Capture Name=""2"" Span=""[20..26)"" Text=""(\s|$)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest65()
{
Test(@"@""[ \f\n\r\t\v]""", @"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken> </TextToken>
</Text>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>f</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>n</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>r</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>t</TextToken>
</SimpleEscape>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>v</TextToken>
</SimpleEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""[ \f\n\r\t\v]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest66()
{
Test(@"@""(\W){1,2}""", @"<Tree>
<CompilationUnit>
<Sequence>
<ClosedRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""(\W){1,2}"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\W)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest67()
{
Test(@"@""(\w+)""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""(\w+)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest68()
{
Test(@"@""\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest69()
{
Test(@"@""\b(\w+)(\W){1,2}""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ClosedRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""\b(\w+)(\W){1,2}"" />
<Capture Name=""1"" Span=""[12..17)"" Text=""(\w+)"" />
<Capture Name=""2"" Span=""[17..21)"" Text=""(\W)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest70()
{
Test(@"@""(?>(\w)\1+).\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""(?>(\w)\1+).\b"" />
<Capture Name=""1"" Span=""[13..17)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest71()
{
Test(@"@""(\b(\w+)\W+)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""(\b(\w+)\W+)+"" />
<Capture Name=""1"" Span=""[10..22)"" Text=""(\b(\w+)\W+)"" />
<Capture Name=""2"" Span=""[13..18)"" Text=""(\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest72()
{
Test(@"@""(\w)\1+.\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""(\w)\1+.\b"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest73()
{
Test(@"@""\p{Sc}*(\s?\d+[.,]?\d*)\p{Sc}*""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Sc</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>.,</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Sc</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..40)"" Text=""\p{Sc}*(\s?\d+[.,]?\d*)\p{Sc}*"" />
<Capture Name=""1"" Span=""[17..33)"" Text=""(\s?\d+[.,]?\d*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest74()
{
Test(@"@""p{Sc}*(?<amount>\s?\d+[.,]?\d*)\p{Sc}*""", @"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>p{Sc</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>}</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""amount"">amount</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>.,</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Sc</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..48)"" Text=""p{Sc}*(?<amount>\s?\d+[.,]?\d*)\p{Sc}*"" />
<Capture Name=""1"" Span=""[16..41)"" Text=""(?<amount>\s?\d+[.,]?\d*)"" />
<Capture Name=""amount"" Span=""[16..41)"" Text=""(?<amount>\s?\d+[.,]?\d*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest75()
{
Test(@"@""^(\w+\s?)+$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""^(\w+\s?)+$"" />
<Capture Name=""1"" Span=""[11..19)"" Text=""(\w+\s?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest76()
{
Test(@"@""(?ix) d \w+ \s""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>ix</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Text>
<TextToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""(?ix) d \w+ \s"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest77()
{
Test(@"@""\b(?ix: d \w+)\s""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NestedOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>ix</OptionsToken>
<ColonToken>:</ColonToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NestedOptionsGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""\b(?ix: d \w+)\s"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest78()
{
Test(@"@""\bthe\w*\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>the</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""\bthe\w*\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest79()
{
Test(@"@""\b(?i:t)he\w*\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<NestedOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>i</OptionsToken>
<ColonToken>:</ColonToken>
<Sequence>
<Text>
<TextToken>t</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NestedOptionsGrouping>
<Text>
<TextToken>he</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""\b(?i:t)he\w*\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest80()
{
Test(@"@""^(\w+)\s(\d+)$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^(\w+)\s(\d+)$"" />
<Capture Name=""1"" Span=""[11..16)"" Text=""(\w+)"" />
<Capture Name=""2"" Span=""[18..23)"" Text=""(\d+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest81()
{
Test(@"@""^(\w+)\s(\d+)\r*$""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrMoreQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>r</TextToken>
</SimpleEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""^(\w+)\s(\d+)\r*$"" />
<Capture Name=""1"" Span=""[11..16)"" Text=""(\w+)"" />
<Capture Name=""2"" Span=""[18..23)"" Text=""(\d+)"" />
</Captures>
</Tree>", RegexOptions.Multiline);
}
[Fact]
public void ReferenceTest82()
{
Test(@"@""(?m)^(\w+)\s(\d+)\r*$""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>m</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrMoreQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>r</TextToken>
</SimpleEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..31)"" Text=""(?m)^(\w+)\s(\d+)\r*$"" />
<Capture Name=""1"" Span=""[15..20)"" Text=""(\w+)"" />
<Capture Name=""2"" Span=""[22..27)"" Text=""(\d+)"" />
</Captures>
</Tree>", RegexOptions.Multiline);
}
[Fact]
public void ReferenceTest83()
{
Test(@"@""(?s)^.+""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>s</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?s)^.+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest84()
{
Test(@"@""\b(\d{2}-)*(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ConditionalCaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OpenParenToken>(</OpenParenToken>
<NumberToken value=""1"">1</NumberToken>
<CloseParenToken>)</CloseParenToken>
<Alternation>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""7"">7</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</ConditionalCaptureGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..52)"" Text=""\b(\d{2}-)*(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b"" />
<Capture Name=""1"" Span=""[12..20)"" Text=""(\d{2}-)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest85()
{
Test(@"@""\b\(?((\w+),?\s?)+[\.!?]\)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..37)"" Text=""\b\(?((\w+),?\s?)+[\.!?]\)?"" />
<Capture Name=""1"" Span=""[15..27)"" Text=""((\w+),?\s?)"" />
<Capture Name=""2"" Span=""[16..21)"" Text=""(\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest86()
{
Test(@"@""(?n)\b\(?((?>\w+),?\s?)+[\.!?]\)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>n</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..43)"" Text=""(?n)\b\(?((?>\w+),?\s?)+[\.!?]\)?"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest87()
{
Test(@"@""\b\(?(?n:(?>\w+),?\s?)+[\.!?]\)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<NestedOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>n</OptionsToken>
<ColonToken>:</ColonToken>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</NestedOptionsGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..42)"" Text=""\b\(?(?n:(?>\w+),?\s?)+[\.!?]\)?"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest88()
{
Test(@"@""\b\(?((?>\w+),?\s?)+[\.!?]\)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..39)"" Text=""\b\(?((?>\w+),?\s?)+[\.!?]\)?"" />
<Capture Name=""1"" Span=""[15..29)"" Text=""((?>\w+),?\s?)"" />
</Captures>
</Tree>", RegexOptions.IgnorePatternWhitespace);
}
[Fact]
public void ReferenceTest89()
{
Test(@"@""(?x)\b \(? ( (?>\w+) ,?\s? )+ [\.!?] \)? # Matches an entire sentence.""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>x</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>(</OpenParenToken>
<Sequence>
<AtomicGrouping>
<OpenParenToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
<CommentTrivia># Matches an entire sentence.</CommentTrivia>
</Trivia>
</EndOfFile>
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..81)"" Text=""(?x)\b \(? ( (?>\w+) ,?\s? )+ [\.!?] \)? # Matches an entire sentence."" />
<Capture Name=""1"" Span=""[21..38)"" Text=""( (?>\w+) ,?\s? )"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest90()
{
Test(@"@""\bb\w+\s""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>b</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""\bb\w+\s"" />
</Captures>
</Tree>", RegexOptions.RightToLeft);
}
[Fact]
public void ReferenceTest91()
{
Test(@"@""(?<=\d{1,2}\s)\w+,?\s\d{4}""", @"<Tree>
<CompilationUnit>
<Sequence>
<PositiveLookbehindGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<EqualsToken>=</EqualsToken>
<Sequence>
<ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</PositiveLookbehindGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..36)"" Text=""(?<=\d{1,2}\s)\w+,?\s\d{4}"" />
</Captures>
</Tree>", RegexOptions.RightToLeft);
}
[Fact]
public void ReferenceTest92()
{
Test(@"@""\b(\w+\s*)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""\b(\w+\s*)+"" />
<Capture Name=""1"" Span=""[12..20)"" Text=""(\w+\s*)"" />
</Captures>
</Tree>", RegexOptions.ECMAScript);
}
[Fact]
public void ReferenceTest93()
{
Test(@"@""((a+)(\1) ?)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<Text>
<TextToken>a</TextToken>
</Text>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken> </TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""((a+)(\1) ?)+"" />
<Capture Name=""1"" Span=""[10..22)"" Text=""((a+)(\1) ?)"" />
<Capture Name=""2"" Span=""[11..15)"" Text=""(a+)"" />
<Capture Name=""3"" Span=""[15..19)"" Text=""(\1)"" />
</Captures>
</Tree>", RegexOptions.ECMAScript);
}
[Fact]
public void ReferenceTest94()
{
Test(@"@""\b(D\w+)\s(d\w+)\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>D</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..28)"" Text=""\b(D\w+)\s(d\w+)\b"" />
<Capture Name=""1"" Span=""[12..18)"" Text=""(D\w+)"" />
<Capture Name=""2"" Span=""[20..26)"" Text=""(d\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest95()
{
Test(@"@""\b(D\w+)(?ixn) \s (d\w+) \b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>D</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>ixn</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..37)"" Text=""\b(D\w+)(?ixn) \s (d\w+) \b"" />
<Capture Name=""1"" Span=""[12..18)"" Text=""(D\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest96()
{
Test(@"@""\b((?# case-sensitive comparison)D\w+)\s((?#case-insensitive comparison)d\w+)\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<CommentTrivia>(?# case-sensitive comparison)</CommentTrivia>
</Trivia>D</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<CommentTrivia>(?#case-insensitive comparison)</CommentTrivia>
</Trivia>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..89)"" Text=""\b((?# case-sensitive comparison)D\w+)\s((?#case-insensitive comparison)d\w+)\b"" />
<Capture Name=""1"" Span=""[12..48)"" Text=""((?# case-sensitive comparison)D\w+)"" />
<Capture Name=""2"" Span=""[50..87)"" Text=""((?#case-insensitive comparison)d\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest97()
{
Test(@"@""\b\(?((?>\w+),?\s?)+[\.!?]\)?""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<ZeroOrOneQuantifier>
<Text>
<TextToken>,</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<ZeroOrOneQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
<Text>
<TextToken>!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>)</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..39)"" Text=""\b\(?((?>\w+),?\s?)+[\.!?]\)?"" />
<Capture Name=""1"" Span=""[15..29)"" Text=""((?>\w+),?\s?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest98()
{
Test(@"@""\b(?<n2>\d{2}-)*(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<ZeroOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""n2"">n2</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ConditionalCaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OpenParenToken>(</OpenParenToken>
<CaptureNameToken value=""n2"">n2</CaptureNameToken>
<CloseParenToken>)</CloseParenToken>
<Alternation>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""7"">7</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</ConditionalCaptureGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..58)"" Text=""\b(?<n2>\d{2}-)*(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b"" />
<Capture Name=""1"" Span=""[12..25)"" Text=""(?<n2>\d{2}-)"" />
<Capture Name=""n2"" Span=""[12..25)"" Text=""(?<n2>\d{2}-)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest99()
{
Test(@"@""\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""7"">7</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..45)"" Text=""\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b"" />
<Capture Name=""1"" Span=""[12..43)"" Text=""(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest100()
{
Test(@"@""\bgr(a|e)y\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>gr</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>e</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>y</TextToken>
</Text>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""\bgr(a|e)y\b"" />
<Capture Name=""1"" Span=""[14..19)"" Text=""(a|e)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest101()
{
Test(@"@""(?>(\w)\1+).\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</AtomicGrouping>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""(?>(\w)\1+).\b"" />
<Capture Name=""1"" Span=""[13..17)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest102()
{
Test(@"@""(\b(\w+)\W+)+""", @"<Tree>
<CompilationUnit>
<Sequence>
<OneOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""(\b(\w+)\W+)+"" />
<Capture Name=""1"" Span=""[10..22)"" Text=""(\b(\w+)\W+)"" />
<Capture Name=""2"" Span=""[13..18)"" Text=""(\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest103()
{
Test(@"@""\b91*9*\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>9</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>1</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>9</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""\b91*9*\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest104()
{
Test(@"@""\ban+\w*?\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>a</TextToken>
</Text>
<OneOrMoreQuantifier>
<Text>
<TextToken>n</TextToken>
</Text>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""\ban+\w*?\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest105()
{
Test(@"@""\ban?\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>a</TextToken>
</Text>
<ZeroOrOneQuantifier>
<Text>
<TextToken>n</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""\ban?\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest106()
{
Test(@"@""\b\d+\,\d{3}\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>,</TextToken>
</SimpleEscape>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""\b\d+\,\d{3}\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest107()
{
Test(@"@""\b\d{2,}\b\D+""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OpenRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}</CloseBraceToken>
</OpenRangeNumericQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""\b\d{2,}\b\D+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest108()
{
Test(@"@""(00\s){2,4}""", @"<Tree>
<CompilationUnit>
<Sequence>
<ClosedRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>00</TextToken>
</Text>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""(00\s){2,4}"" />
<Capture Name=""1"" Span=""[10..16)"" Text=""(00\s)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest109()
{
Test(@"@""\b\w*?oo\w*?\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>oo</TextToken>
</Text>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""\b\w*?oo\w*?\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest110()
{
Test(@"@""\b\w+?\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<LazyQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""\b\w+?\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest111()
{
Test(@"@""^\s*(System.)??Console.Write(Line)??\(??""", @"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<LazyQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>System</TextToken>
</Text>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>Console</TextToken>
</Text>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<Text>
<TextToken>Write</TextToken>
</Text>
<LazyQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>Line</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<LazyQuantifier>
<ZeroOrOneQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>(</TextToken>
</SimpleEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..50)"" Text=""^\s*(System.)??Console.Write(Line)??\(??"" />
<Capture Name=""1"" Span=""[14..23)"" Text=""(System.)"" />
<Capture Name=""2"" Span=""[38..44)"" Text=""(Line)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest112()
{
Test(@"@""(System.)??""", @"<Tree>
<CompilationUnit>
<Sequence>
<LazyQuantifier>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>System</TextToken>
</Text>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""(System.)??"" />
<Capture Name=""1"" Span=""[10..19)"" Text=""(System.)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest113()
{
Test(@"@""\b(\w{3,}?\.){2}?\w{3,}?\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<LazyQuantifier>
<ExactNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<LazyQuantifier>
<OpenRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}</CloseBraceToken>
</OpenRangeNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>.</TextToken>
</SimpleEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<LazyQuantifier>
<OpenRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""3"">3</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}</CloseBraceToken>
</OpenRangeNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..36)"" Text=""\b(\w{3,}?\.){2}?\w{3,}?\b"" />
<Capture Name=""1"" Span=""[12..23)"" Text=""(\w{3,}?\.)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest114()
{
Test(@"@""\b[A-Z](\w*?\s*?){1,10}[.!?]""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>A</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>Z</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ClosedRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""10"">10</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>.!?</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..38)"" Text=""\b[A-Z](\w*?\s*?){1,10}[.!?]"" />
<Capture Name=""1"" Span=""[17..27)"" Text=""(\w*?\s*?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest115()
{
Test(@"@""b.*([0-9]{4})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>b</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""b.*([0-9]{4})\b"" />
<Capture Name=""1"" Span=""[13..23)"" Text=""([0-9]{4})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest116()
{
Test(@"@""\b.*?([0-9]{4})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<Wildcard>
<DotToken>.</DotToken>
</Wildcard>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>0</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>9</TextToken>
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""\b.*?([0-9]{4})\b"" />
<Capture Name=""1"" Span=""[15..25)"" Text=""([0-9]{4})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest117()
{
Test(@"@""(a?)*""", @"<Tree>
<CompilationUnit>
<Sequence>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<Text>
<TextToken>a</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""(a?)*"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(a?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest118()
{
Test(@"@""(a\1|(?(1)\1)){0,2}""", @"<Tree>
<CompilationUnit>
<Sequence>
<ClosedRangeNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<ConditionalCaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OpenParenToken>(</OpenParenToken>
<NumberToken value=""1"">1</NumberToken>
<CloseParenToken>)</CloseParenToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalCaptureGrouping>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""0"">0</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""(a\1|(?(1)\1)){0,2}"" />
<Capture Name=""1"" Span=""[10..24)"" Text=""(a\1|(?(1)\1))"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest119()
{
Test(@"@""(a\1|(?(1)\1)){2}""", @"<Tree>
<CompilationUnit>
<Sequence>
<ExactNumericQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<ConditionalCaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OpenParenToken>(</OpenParenToken>
<NumberToken value=""1"">1</NumberToken>
<CloseParenToken>)</CloseParenToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalCaptureGrouping>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(a\1|(?(1)\1)){2}"" />
<Capture Name=""1"" Span=""[10..24)"" Text=""(a\1|(?(1)\1))"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest120()
{
Test(@"@""(\w)\1""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(\w)\1"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest121()
{
Test(@"@""(?<char>\w)\k<char>""", @"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""char"">char</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""char"">char</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""(?<char>\w)\k<char>"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<char>\w)"" />
<Capture Name=""char"" Span=""[10..21)"" Text=""(?<char>\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest122()
{
Test(@"@""(?<2>\w)\k<2>""", @"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""2"">2</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""2"">2</NumberToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""(?<2>\w)\k<2>"" />
<Capture Name=""2"" Span=""[10..18)"" Text=""(?<2>\w)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest123()
{
Test(@"@""(?<1>a)(?<1>\1b)*""", @"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""1"">1</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""1"">1</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
<Text>
<TextToken>b</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(?<1>a)(?<1>\1b)*"" />
<Capture Name=""1"" Span=""[10..17)"" Text=""(?<1>a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest124()
{
Test(@"@""\b(\p{Lu}{2})(\d{2})?(\p{Lu}{2})\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lu</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ExactNumericQuantifier>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{</OpenBraceToken>
<EscapeCategoryToken>Lu</EscapeCategoryToken>
<CloseBraceToken>}</CloseBraceToken>
</CategoryEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""2"">2</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ExactNumericQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..44)"" Text=""\b(\p{Lu}{2})(\d{2})?(\p{Lu}{2})\b"" />
<Capture Name=""1"" Span=""[12..23)"" Text=""(\p{Lu}{2})"" />
<Capture Name=""2"" Span=""[23..30)"" Text=""(\d{2})"" />
<Capture Name=""3"" Span=""[31..42)"" Text=""(\p{Lu}{2})"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest125()
{
Test(@"@""\bgr[ae]y\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<Text>
<TextToken>gr</TextToken>
</Text>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>ae</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<Text>
<TextToken>y</TextToken>
</Text>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""\bgr[ae]y\b"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest126()
{
Test(@"@""\b((?# case sensitive comparison)D\w+)\s(?ixn)((?#case insensitive comparison)d\w+)\b""", @"<Tree>
<CompilationUnit>
<Sequence>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<CommentTrivia>(?# case sensitive comparison)</CommentTrivia>
</Trivia>D</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>ixn</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>
<Trivia>
<CommentTrivia>(?#case insensitive comparison)</CommentTrivia>
</Trivia>d</TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AnchorEscape>
<BackslashToken>\</BackslashToken>
<TextToken>b</TextToken>
</AnchorEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..95)"" Text=""\b((?# case sensitive comparison)D\w+)\s(?ixn)((?#case insensitive comparison)d\w+)\b"" />
<Capture Name=""1"" Span=""[12..48)"" Text=""((?# case sensitive comparison)D\w+)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void ReferenceTest127()
{
Test(@"@""\{\d+(,-*\d+)*(\:\w{1,4}?)*\}(?x) # Looks for a composite format item.""", @"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>{</TextToken>
</SimpleEscape>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>,</TextToken>
</Text>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>-</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>:</TextToken>
</SimpleEscape>
<LazyQuantifier>
<ClosedRangeNumericQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<OpenBraceToken>{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""4"">4</NumberToken>
<CloseBraceToken>}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>}</TextToken>
</SimpleEscape>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>x</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
</Sequence>
<EndOfFile>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
<CommentTrivia># Looks for a composite format item.</CommentTrivia>
</Trivia>
</EndOfFile>
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..80)"" Text=""\{\d+(,-*\d+)*(\:\w{1,4}?)*\}(?x) # Looks for a composite format item."" />
<Capture Name=""1"" Span=""[15..23)"" Text=""(,-*\d+)"" />
<Capture Name=""2"" Span=""[24..36)"" Text=""(\:\w{1,4}?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
}
}
|