|
// 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
{
// These tests came from tests found at:
// https://github.com/dotnet/corefx/blob/main/src/System.Text.RegularExpressions/tests/
public partial class CSharpRegexParserTests
{
[Fact]
public void NegativeTest0()
{
Test(@"@""cat([a-\d]*)dog""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>d</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "d")}"" Span=""[17..19)"" Text=""\d"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""cat([a-\d]*)dog"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""([a-\d]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest1()
{
Test(@"@""\k<1""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken><1</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unrecognized_escape_sequence_0, "k")}"" Span=""[11..12)"" Text=""k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""\k<1"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest2()
{
Test(@"@""\k<""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken><</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_named_back_reference.Replace("<", "<").Replace(">", ">")}"" Span=""[10..12)"" Text=""\k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\k<"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest3()
{
Test(@"@""\k""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_named_back_reference.Replace("<", "<").Replace(">", ">")}"" Span=""[10..12)"" Text=""\k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""\k"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest4()
{
Test(@"@""\1""", $@"<Tree>
<CompilationUnit>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""1"">1</NumberToken>
</BackreferenceEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_number_0, "1")}"" Span=""[11..12)"" Text=""1"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""\1"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest5()
{
Test(@"@""(?')""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken />
<SingleQuoteToken />
<Sequence />
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[13..14)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(?')"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest6()
{
Test(@"@""(?<)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken />
<GreaterThanToken />
<Sequence />
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[13..14)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(?<)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest7()
{
Test(@"@""(?)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[11..12)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest8()
{
Test(@"@""(?>""", $@"<Tree>
<CompilationUnit>
<Sequence>
<AtomicGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence />
<CloseParenToken />
</AtomicGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?>"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest9()
{
Test(@"@""(?<!""", $@"<Tree>
<CompilationUnit>
<Sequence>
<NegativeLookbehindGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<ExclamationToken>!</ExclamationToken>
<Sequence />
<CloseParenToken />
</NegativeLookbehindGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[14..14)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(?<!"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest10()
{
Test(@"@""(?<=""", $@"<Tree>
<CompilationUnit>
<Sequence>
<PositiveLookbehindGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<EqualsToken>=</EqualsToken>
<Sequence />
<CloseParenToken />
</PositiveLookbehindGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[14..14)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(?<="" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest11()
{
Test(@"@""(?!""", $@"<Tree>
<CompilationUnit>
<Sequence>
<NegativeLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ExclamationToken>!</ExclamationToken>
<Sequence />
<CloseParenToken />
</NegativeLookaheadGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?!"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest12()
{
Test(@"@""(?=""", $@"<Tree>
<CompilationUnit>
<Sequence>
<PositiveLookaheadGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<EqualsToken>=</EqualsToken>
<Sequence />
<CloseParenToken />
</PositiveLookaheadGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?="" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest13()
{
Test(@"@""(?imn )""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>imn</OptionsToken>
<CloseParenToken />
</SimpleOptionsGrouping>
<Text>
<TextToken> </TextToken>
</Text>
<Text>
<TextToken>)</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Too_many_close_parens}"" Span=""[16..17)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?imn )"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest14()
{
Test(@"@""(?imn""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>imn</OptionsToken>
<CloseParenToken />
</SimpleOptionsGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""(?imn"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest15()
{
Test(@"@""(?:""", $@"<Tree>
<CompilationUnit>
<Sequence>
<NonCapturingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<ColonToken>:</ColonToken>
<Sequence />
<CloseParenToken />
</NonCapturingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?:"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest16()
{
Test(@"@""(?'cat'""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence />
<CloseParenToken />
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[17..17)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?'cat'"" />
<Capture Name=""1"" Span=""[10..17)"" Text=""(?'cat'"" />
<Capture Name=""cat"" Span=""[10..17)"" Text=""(?'cat'"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest17()
{
Test(@"@""(?'""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken />
<SingleQuoteToken />
<Sequence />
<CloseParenToken />
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..13)"" Text=""(?'"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?'"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest18()
{
Test(@"@""[^""", $@"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence />
<CloseBracketToken />
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[12..12)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""[^"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest19()
{
Test(@"@""[cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[14..14)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""[cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest20()
{
Test(@"@""[^cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<NegatedCharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<CaretToken>^</CaretToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</NegatedCharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[15..15)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""[^cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest21()
{
Test(@"@""[a-""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken />
</Text>
</CharacterClassRange>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""[a-"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest22()
{
Test(@"@""\p{""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[10..12)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\p{{"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest23()
{
Test(@"@""\p{cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[10..12)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""\p{{cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest24()
{
Test(@"@""\k<cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken><cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unrecognized_escape_sequence_0, "k")}"" Span=""[11..12)"" Text=""k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""\k<cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest25()
{
Test(@"@""\p{cat}""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>cat</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unknown_property_0, "cat")}"" Span=""[13..16)"" Text=""cat"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""\p{{cat}}"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest26()
{
Test(@"@""\P{cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[10..12)"" Text=""\P"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""\P{{cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest27()
{
Test(@"@""\P{cat}""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>cat</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unknown_property_0, "cat")}"" Span=""[13..16)"" Text=""cat"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""\P{{cat}}"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest28()
{
Test(@"@""(""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence />
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[11..11)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..11)"" Text=""("" />
<Capture Name=""1"" Span=""[10..11)"" Text=""("" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest29()
{
Test(@"@""(?""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[11..12)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[12..12)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""(?"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest30()
{
Test(@"@""(?<""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken />
<GreaterThanToken />
<Sequence />
<CloseParenToken />
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..13)"" Text=""(?<"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?<"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest31()
{
Test(@"@""(?<cat>""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence />
<CloseParenToken />
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[17..17)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?<cat>"" />
<Capture Name=""1"" Span=""[10..17)"" Text=""(?<cat>"" />
<Capture Name=""cat"" Span=""[10..17)"" Text=""(?<cat>"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest32()
{
Test(@"@""\P{""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[10..12)"" Text=""\P"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\P{{"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest33()
{
Test(@"@""\k<>""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unrecognized_escape_sequence_0, "k")}"" Span=""[11..12)"" Text=""k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""\k<>"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest34()
{
Test(@"@""(?(""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence />
<CloseParenToken />
</SimpleGrouping>
<Sequence />
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?("" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest35()
{
Test(@"@""(?()|""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Alternation>
<Sequence />
<BarToken>|</BarToken>
<Sequence />
</Alternation>
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[15..15)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""(?()|"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest36()
{
Test(@"@""?(a|b)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>b</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""?(a|b)"" />
<Capture Name=""1"" Span=""[11..16)"" Text=""(a|b)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest37()
{
Test(@"@""?((a)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[15..15)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..15)"" Text=""?((a)"" />
<Capture Name=""1"" Span=""[11..15)"" Text=""((a)"" />
<Capture Name=""2"" Span=""[12..15)"" Text=""(a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest38()
{
Test(@"@""?((a)a""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[16..16)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""?((a)a"" />
<Capture Name=""1"" Span=""[11..16)"" Text=""((a)a"" />
<Capture Name=""2"" Span=""[12..15)"" Text=""(a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest39()
{
Test(@"@""?((a)a|""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<BarToken>|</BarToken>
<Sequence />
</Alternation>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[17..17)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""?((a)a|"" />
<Capture Name=""1"" Span=""[11..17)"" Text=""((a)a|"" />
<Capture Name=""2"" Span=""[12..15)"" Text=""(a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest40()
{
Test(@"@""?((a)a|b""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>b</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[18..18)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""?((a)a|b"" />
<Capture Name=""1"" Span=""[11..18)"" Text=""((a)a|b"" />
<Capture Name=""2"" Span=""[12..15)"" Text=""(a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest41()
{
Test(@"@""(?(?i))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>i</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?i))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest42()
{
Test(@"@""?(a)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""?(a)"" />
<Capture Name=""1"" Span=""[11..14)"" Text=""(a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest43()
{
Test(@"@""(?(?I))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>I</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?I))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest44()
{
Test(@"@""(?(?M))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>M</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?M))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest45()
{
Test(@"@""(?(?s))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>s</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?s))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest46()
{
Test(@"@""(?(?S))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>S</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?S))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest47()
{
Test(@"@""(?(?x))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>x</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?x))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest48()
{
Test(@"@""(?(?X))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>X</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?X))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest49()
{
Test(@"@""(?(?n))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>n</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?n))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest50()
{
Test(@"@""(?(?m))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>m</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?m))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest51()
{
Test(@"@""[a""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[12..12)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""[a"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest52()
{
Test(@"@""?(a:b)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>a:b</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[10..11)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""?(a:b)"" />
<Capture Name=""1"" Span=""[11..16)"" Text=""(a:b)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest53()
{
Test(@"@""(?(?""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
<Sequence />
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[12..13)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[13..14)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[14..14)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(?(?"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest54()
{
Test(@"@""(?(cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
<Sequence />
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[16..16)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(?(cat"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest55()
{
Test(@"@""(?(cat)|""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Alternation>
<Sequence />
<BarToken>|</BarToken>
<Sequence />
</Alternation>
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[18..18)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""(?(cat)|"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest56()
{
Test(@"@""foo(?<0>bar)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>foo</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""0"">0</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>bar</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Capture_number_cannot_be_zero}"" Span=""[16..17)"" Text=""0"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""foo(?<0>bar)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest57()
{
Test(@"@""foo(?'0'bar)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>foo</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<NumberToken value=""0"">0</NumberToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>bar</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Capture_number_cannot_be_zero}"" Span=""[16..17)"" Text=""0"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""foo(?'0'bar)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest58()
{
Test(@"@""foo(?<1bar)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>foo</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""1"">1</NumberToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken>bar</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[17..18)"" Text=""b"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""foo(?<1bar)"" />
<Capture Name=""1"" Span=""[13..21)"" Text=""(?<1bar)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest59()
{
Test(@"@""foo(?'1bar)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>foo</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<NumberToken value=""1"">1</NumberToken>
<SingleQuoteToken />
<Sequence>
<Text>
<TextToken>bar</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[17..18)"" Text=""b"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""foo(?'1bar)"" />
<Capture Name=""1"" Span=""[13..21)"" Text=""(?'1bar)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest60()
{
Test(@"@""(?(""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence />
<CloseParenToken />
</SimpleGrouping>
<Sequence />
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[13..13)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""(?("" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest61()
{
Test(@"@""\p{klsak""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{klsak</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[10..12)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""\p{{klsak"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest62()
{
Test(@"@""(?c:cat)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>c:cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[11..12)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""(?c:cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest63()
{
Test(@"@""(??e:cat)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<Text>
<TextToken>?</TextToken>
</Text>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<Text>
<TextToken>e:cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[11..12)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""(??e:cat)"" />
<Capture Name=""1"" Span=""[10..19)"" Text=""(??e:cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest64()
{
Test(@"@""[a-f-[]]+""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<Text>
<TextToken>f</TextToken>
</Text>
</CharacterClassRange>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>]</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</CharacterClassSubtraction>
<Text>
<TextToken>+</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.A_subtraction_must_be_the_last_element_in_a_character_class}"" Span=""[14..14)"" Text="""" />
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[19..19)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""[a-f-[]]+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest65()
{
Test(@"@""[A-[]+""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>A</TextToken>
</Text>
<CharacterClassSubtraction>
<MinusToken>-</MinusToken>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>]+</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</CharacterClassSubtraction>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[16..16)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""[A-[]+"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest66()
{
Test(@"@""(?(?e))""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>e</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[12..13)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[13..14)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?e))"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest67()
{
Test(@"@""(?(?a)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>a</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Sequence />
<CloseParenToken />
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[12..13)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[13..14)"" Text=""?"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[16..16)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(?(?a)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest68()
{
Test(@"@""(?r:cat)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>r:cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[10..11)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[11..12)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..18)"" Text=""(?r:cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest69()
{
Test(@"@""(?(?N))""", @"<Tree>
<CompilationUnit>
<Sequence>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleOptionsGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<OptionsToken>N</OptionsToken>
<CloseParenToken>)</CloseParenToken>
</SimpleOptionsGrouping>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(?(?N))"" />
</Captures>
</Tree>", RegexOptions.None, allowNullReference: true);
}
[Fact]
public void NegativeTest70()
{
Test(@"@""[]""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>]</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[12..12)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""[]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest71()
{
Test(@"@""\x2""", $@"<Tree>
<CompilationUnit>
<Sequence>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken>2</TextToken>
</HexEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Insufficient_hexadecimal_digits}"" Span=""[10..13)"" Text=""\x2"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\x2"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest72()
{
Test(@"@""(cat) (?#cat) \s+ (?#followed by 1 or more whitespace""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
<CommentTrivia>(?#cat)</CommentTrivia>
<WhitespaceTrivia> </WhitespaceTrivia>
</Trivia>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
</Sequence>
<EndOfFile>
<Trivia>
<WhitespaceTrivia> </WhitespaceTrivia>
<CommentTrivia>(?#followed by 1 or more whitespace</CommentTrivia>
</Trivia>
</EndOfFile>
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_regex_comment}"" Span=""[31..66)"" Text=""(?#followed by 1 or more whitespace"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..66)"" Text=""(cat) (?#cat) \s+ (?#followed by 1 or more whitespace"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
</Captures>
</Tree>", RegexOptions.IgnorePatternWhitespace);
}
[Fact]
public void NegativeTest73()
{
Test(@"@""cat(?(?afdcat)dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>afdcat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[15..16)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[16..17)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..28)"" Text=""cat(?(?afdcat)dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest74()
{
Test(@"@""cat(?(?<cat>cat)dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Alternation_conditions_do_not_capture_and_cannot_be_named}"" Span=""[13..14)"" Text=""("" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..30)"" Text=""cat(?(?<cat>cat)dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest75()
{
Test(@"@""cat(?(?'cat'cat)dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SingleQuoteToken>'</SingleQuoteToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<SingleQuoteToken>'</SingleQuoteToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Alternation_conditions_do_not_capture_and_cannot_be_named}"" Span=""[13..14)"" Text=""("" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..30)"" Text=""cat(?(?'cat'cat)dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest76()
{
Test(@"@""cat(?(?#COMMENT)cat)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<ConditionalExpressionGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>?</TextToken>
</Text>
<Text>
<TextToken>#COMMENT</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</ConditionalExpressionGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Alternation_conditions_cannot_be_comments}"" Span=""[13..14)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Unrecognized_grouping_construct}"" Span=""[15..16)"" Text=""("" />
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[16..17)"" Text=""?"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..30)"" Text=""cat(?(?#COMMENT)cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest77()
{
Test(@"@""(?<cat>cat)\w+(?<dog-()*!@>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken />
<GreaterThanToken />
<Sequence>
<ZeroOrMoreQuantifier>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence />
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>!@>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[31..32)"" Text=""("" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..41)"" Text=""(?<cat>cat)\w+(?<dog-()*!@>dog)"" />
<Capture Name=""1"" Span=""[31..33)"" Text=""()"" />
<Capture Name=""2"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""3"" Span=""[24..41)"" Text=""(?<dog-()*!@>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..41)"" Text=""(?<dog-()*!@>dog)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void NegativeTest78()
{
Test(@"@""(?<cat>cat)\w+(?<dog-catdog>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<MinusToken>-</MinusToken>
<CaptureNameToken value=""catdog"">catdog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_name_0, "catdog")}"" Span=""[31..37)"" Text=""catdog"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..42)"" Text=""(?<cat>cat)\w+(?<dog-catdog>dog)"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..42)"" Text=""(?<dog-catdog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..42)"" Text=""(?<dog-catdog>dog)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void NegativeTest79()
{
Test(@"@""(?<cat>cat)\w+(?<dog-1uosn>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<MinusToken>-</MinusToken>
<NumberToken value=""1"">1</NumberToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken>uosn>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[32..33)"" Text=""u"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..41)"" Text=""(?<cat>cat)\w+(?<dog-1uosn>dog)"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..41)"" Text=""(?<dog-1uosn>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..41)"" Text=""(?<dog-1uosn>dog)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void NegativeTest80()
{
Test(@"@""(?<cat>cat)\w+(?<dog-16>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<MinusToken>-</MinusToken>
<NumberToken value=""16"">16</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_number_0, "16")}"" Span=""[31..33)"" Text=""16"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..38)"" Text=""(?<cat>cat)\w+(?<dog-16>dog)"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..38)"" Text=""(?<dog-16>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..38)"" Text=""(?<dog-16>dog)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void NegativeTest81()
{
Test(@"@""cat(?<->dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<BalancingGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken />
<MinusToken>-</MinusToken>
<CaptureNameToken />
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</BalancingGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[17..18)"" Text="">"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""cat(?<->dog)"" />
</Captures>
</Tree>", RegexOptions.None, allowIndexOutOfRange: true);
}
[Fact]
public void NegativeTest82()
{
Test(@"@""cat(?<>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken />
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[16..17)"" Text="">"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""cat(?<>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest83()
{
Test(@"@""cat(?<dog<>)_*>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken><></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>_</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>>dog</TextToken>
</Text>
<Text>
<TextToken>)</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[19..20)"" Text=""<"" />
<Diagnostic Message=""{FeaturesResources.Too_many_close_parens}"" Span=""[28..29)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""cat(?<dog<>)_*>dog)"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""(?<dog<>)"" />
<Capture Name=""dog"" Span=""[13..22)"" Text=""(?<dog<>)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest84()
{
Test(@"@""cat(?<dog >)_*>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken> ></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>_</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>>dog</TextToken>
</Text>
<Text>
<TextToken>)</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[19..20)"" Text="" "" />
<Diagnostic Message=""{FeaturesResources.Too_many_close_parens}"" Span=""[28..29)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""cat(?<dog >)_*>dog)"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""(?<dog >)"" />
<Capture Name=""dog"" Span=""[13..22)"" Text=""(?<dog >)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest85()
{
Test(@"@""cat(?<dog!>)_*>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken>!></TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>_</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>>dog</TextToken>
</Text>
<Text>
<TextToken>)</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[19..20)"" Text=""!"" />
<Diagnostic Message=""{FeaturesResources.Too_many_close_parens}"" Span=""[28..29)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..29)"" Text=""cat(?<dog!>)_*>dog)"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""(?<dog!>)"" />
<Capture Name=""dog"" Span=""[13..22)"" Text=""(?<dog!>)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest86()
{
Test(@"@""cat(?<dog)_*>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken />
<Sequence />
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>_</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>>dog</TextToken>
</Text>
<Text>
<TextToken>)</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[19..20)"" Text="")"" />
<Diagnostic Message=""{FeaturesResources.Too_many_close_parens}"" Span=""[26..27)"" Text="")"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""cat(?<dog)_*>dog)"" />
<Capture Name=""1"" Span=""[13..20)"" Text=""(?<dog)"" />
<Capture Name=""dog"" Span=""[13..20)"" Text=""(?<dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest87()
{
Test(@"@""cat(?<1dog>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""1"">1</NumberToken>
<GreaterThanToken />
<Sequence>
<Text>
<TextToken>dog>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Invalid_group_name_Group_names_must_begin_with_a_word_character}"" Span=""[17..18)"" Text=""d"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""cat(?<1dog>dog)"" />
<Capture Name=""1"" Span=""[13..25)"" Text=""(?<1dog>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest88()
{
Test(@"@""cat(?<0>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""0"">0</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Capture_number_cannot_be_zero}"" Span=""[16..17)"" Text=""0"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""cat(?<0>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest89()
{
Test(@"@""([5-\D]*)dog""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>5</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>D</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "D")}"" Span=""[14..16)"" Text=""\D"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""([5-\D]*)dog"" />
<Capture Name=""1"" Span=""[10..19)"" Text=""([5-\D]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest90()
{
Test(@"@""cat([6-\s]*)dog""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>6</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "s")}"" Span=""[17..19)"" Text=""\s"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""cat([6-\s]*)dog"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""([6-\s]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest91()
{
Test(@"@""cat([c-\S]*)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>c</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>S</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "S")}"" Span=""[17..19)"" Text=""\S"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""cat([c-\S]*)"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""([c-\S]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest92()
{
Test(@"@""cat([7-\w]*)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>7</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "w")}"" Span=""[17..19)"" Text=""\w"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""cat([7-\w]*)"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""([7-\w]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest93()
{
Test(@"@""cat([a-\W]*)dog""", $@"<Tree>
<CompilationUnit>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>a</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>W</TextToken>
</CharacterClassEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "W")}"" Span=""[17..19)"" Text=""\W"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""cat([a-\W]*)dog"" />
<Capture Name=""1"" Span=""[13..22)"" Text=""([a-\W]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest94()
{
Test(@"@""([f-\p{Lu}]\w*)\s([\p{Lu}]\w*)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>f</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Lu</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Lu</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>w</TextToken>
</CharacterClassEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "p")}"" Span=""[14..16)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..40)"" Text=""([f-\p{{Lu}}]\w*)\s([\p{{Lu}}]\w*)"" />
<Capture Name=""1"" Span=""[10..25)"" Text=""([f-\p{{Lu}}]\w*)"" />
<Capture Name=""2"" Span=""[27..40)"" Text=""([\p{{Lu}}]\w*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest95()
{
Test(@"@""(cat) (?#cat) \s+ (?#followed by 1 or more whitespace""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<Text>
<TextToken> </TextToken>
</Text>
<Text>
<TextToken>
<Trivia>
<CommentTrivia>(?#cat)</CommentTrivia>
</Trivia> </TextToken>
</Text>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Text>
<TextToken> </TextToken>
</Text>
</Sequence>
<EndOfFile>
<Trivia>
<CommentTrivia>(?#followed by 1 or more whitespace</CommentTrivia>
</Trivia>
</EndOfFile>
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_regex_comment}"" Span=""[31..66)"" Text=""(?#followed by 1 or more whitespace"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..66)"" Text=""(cat) (?#cat) \s+ (?#followed by 1 or more whitespace"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest96()
{
Test(@"@""([1-\P{Ll}][\p{Ll}]*)\s([\P{Ll}][\p{Ll}]*)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CharacterClassRange>
<Text>
<TextToken>1</TextToken>
</Text>
<MinusToken>-</MinusToken>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Ll</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</CharacterClassRange>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Ll</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Ll</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<CategoryEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
<OpenBraceToken>{{</OpenBraceToken>
<EscapeCategoryToken>Ll</EscapeCategoryToken>
<CloseBraceToken>}}</CloseBraceToken>
</CategoryEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Cannot_include_class_0_in_character_range, "P")}"" Span=""[14..16)"" Text=""\P"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..52)"" Text=""([1-\P{{Ll}}][\p{{Ll}}]*)\s([\P{{Ll}}][\p{{Ll}}]*)"" />
<Capture Name=""1"" Span=""[10..31)"" Text=""([1-\P{{Ll}}][\p{{Ll}}]*)"" />
<Capture Name=""2"" Span=""[33..52)"" Text=""([\P{{Ll}}][\p{{Ll}}]*)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest97()
{
Test(@"@""[\P]""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
</SimpleEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[11..13)"" Text=""\P"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""[\P]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest98()
{
Test(@"@""([\pcat])""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_character_escape}"" Span=""[12..14)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""([\pcat])"" />
<Capture Name=""1"" Span=""[10..19)"" Text=""([\pcat])"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest99()
{
Test(@"@""([\Pcat])""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>P</TextToken>
</SimpleEscape>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_character_escape}"" Span=""[12..14)"" Text=""\P"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""([\Pcat])"" />
<Capture Name=""1"" Span=""[10..19)"" Text=""([\Pcat])"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest100()
{
Test(@"@""(\p{""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[11..13)"" Text=""\p"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[14..14)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""(\p{{"" />
<Capture Name=""1"" Span=""[10..14)"" Text=""(\p{{"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest101()
{
Test(@"@""(\p{Ll""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
<Text>
<TextToken>{{Ll</TextToken>
</Text>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[11..13)"" Text=""\p"" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[16..16)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..16)"" Text=""(\p{{Ll"" />
<Capture Name=""1"" Span=""[10..16)"" Text=""(\p{{Ll"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest102()
{
Test(@"@""(cat)([\o]*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>o</TextToken>
</SimpleEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Unrecognized_escape_sequence_0, "o")}"" Span=""[18..19)"" Text=""o"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(cat)([\o]*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..22)"" Text=""([\o]*)"" />
<Capture Name=""3"" Span=""[22..27)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest103()
{
Test(@"@""[\p]""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>p</TextToken>
</SimpleEscape>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Incomplete_character_escape}"" Span=""[11..13)"" Text=""\p"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..14)"" Text=""[\p]"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest104()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\kcat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_named_back_reference.Replace("<", "<").Replace(">", ">")}"" Span=""[35..37)"" Text=""\k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..40)"" Text=""(?<cat>cat)\s+(?<dog>dog)\kcat"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest105()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\k<cat2>""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat2"">cat2</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_name_0, "cat2")}"" Span=""[38..42)"" Text=""cat2"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..43)"" Text=""(?<cat>cat)\s+(?<dog>dog)\k<cat2>"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest106()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\k<8>cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""8"">8</NumberToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_number_0, "8")}"" Span=""[38..39)"" Text=""8"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..43)"" Text=""(?<cat>cat)\s+(?<dog>dog)\k<8>cat"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest107()
{
Test(@"@""^[abcd]{1}?*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<ExactNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CloseBraceToken>}}</CloseBraceToken>
</ExactNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[21..22)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""^[abcd]{{1}}?*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest108()
{
Test(@"@""^[abcd]*+$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>+</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "+")}"" Span=""[18..19)"" Text=""+"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""^[abcd]*+$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest109()
{
Test(@"@""^[abcd]+*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[18..19)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""^[abcd]+*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest110()
{
Test(@"@""^[abcd]?*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[18..19)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..20)"" Text=""^[abcd]?*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest111()
{
Test(@"@""^[abcd]*?+$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>+</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "+")}"" Span=""[19..20)"" Text=""+"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""^[abcd]*?+$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest112()
{
Test(@"@""^[abcd]+?*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[19..20)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""^[abcd]+?*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest113()
{
Test(@"@""^[abcd]{1,}?*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<OpenRangeNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}}</CloseBraceToken>
</OpenRangeNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[22..23)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^[abcd]{{1,}}?*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest114()
{
Test(@"@""^[abcd]??*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[19..20)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..21)"" Text=""^[abcd]??*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest115()
{
Test(@"@""^[abcd]+{0,5}$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OneOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<Text>
<TextToken>{{</TextToken>
</Text>
<Text>
<TextToken>0,5}}</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "{")}"" Span=""[18..19)"" Text=""{{"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^[abcd]+{{0,5}}$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest116()
{
Test(@"@""^[abcd]?{0,5}$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrOneQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<Text>
<TextToken>{{</TextToken>
</Text>
<Text>
<TextToken>0,5}}</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "{")}"" Span=""[18..19)"" Text=""{{"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^[abcd]?{{0,5}}$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest117()
{
Test(@"@""\u""", $@"<Tree>
<CompilationUnit>
<Sequence>
<UnicodeEscape>
<BackslashToken>\</BackslashToken>
<TextToken>u</TextToken>
<TextToken />
</UnicodeEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Insufficient_hexadecimal_digits}"" Span=""[10..12)"" Text=""\u"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""\u"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest118()
{
Test(@"@""\ua""", $@"<Tree>
<CompilationUnit>
<Sequence>
<UnicodeEscape>
<BackslashToken>\</BackslashToken>
<TextToken>u</TextToken>
<TextToken>a</TextToken>
</UnicodeEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Insufficient_hexadecimal_digits}"" Span=""[10..13)"" Text=""\ua"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\ua"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest119()
{
Test(@"@""\u0""", $@"<Tree>
<CompilationUnit>
<Sequence>
<UnicodeEscape>
<BackslashToken>\</BackslashToken>
<TextToken>u</TextToken>
<TextToken>0</TextToken>
</UnicodeEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Insufficient_hexadecimal_digits}"" Span=""[10..13)"" Text=""\u0"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..13)"" Text=""\u0"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest120()
{
Test(@"@""\x""", $@"<Tree>
<CompilationUnit>
<Sequence>
<HexEscape>
<BackslashToken>\</BackslashToken>
<TextToken>x</TextToken>
<TextToken />
</HexEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Insufficient_hexadecimal_digits}"" Span=""[10..12)"" Text=""\x"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..12)"" Text=""\x"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest121()
{
Test(@"@""^[abcd]*{0,5}$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ZeroOrMoreQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
<Text>
<TextToken>{{</TextToken>
</Text>
<Text>
<TextToken>0,5}}</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "{")}"" Span=""[18..19)"" Text=""{{"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..24)"" Text=""^[abcd]*{{0,5}}$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest122()
{
Test(@"@""[""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence />
<CloseBracketToken />
</CharacterClass>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[11..11)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..11)"" Text=""["" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest123()
{
Test(@"@""^[abcd]{0,16}?*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<LazyQuantifier>
<ClosedRangeNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""0"">0</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""16"">16</NumberToken>
<CloseBraceToken>}}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<QuestionToken>?</QuestionToken>
</LazyQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[24..25)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""^[abcd]{{0,16}}?*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest124()
{
Test(@"@""^[abcd]{1,}*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<OpenRangeNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CommaToken>,</CommaToken>
<CloseBraceToken>}}</CloseBraceToken>
</OpenRangeNumericQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[21..22)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..23)"" Text=""^[abcd]{{1,}}*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest125()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\k<8>cat""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<KCaptureEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""8"">8</NumberToken>
<GreaterThanToken>></GreaterThanToken>
</KCaptureEscape>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_number_0, "8")}"" Span=""[38..39)"" Text=""8"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..43)"" Text=""(?<cat>cat)\s+(?<dog>dog)\k<8>cat"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.ECMAScript);
}
[Fact]
public void NegativeTest126()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\k8""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken>8</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_named_back_reference.Replace("<", "<").Replace(">", ">")}"" Span=""[35..37)"" Text=""\k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..38)"" Text=""(?<cat>cat)\s+(?<dog>dog)\k8"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest127()
{
Test(@"@""(?<cat>cat)\s+(?<dog>dog)\k8""", $@"<Tree>
<CompilationUnit>
<Sequence>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""cat"">cat</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<CaptureNameToken value=""dog"">dog</CaptureNameToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
<SimpleEscape>
<BackslashToken>\</BackslashToken>
<TextToken>k</TextToken>
</SimpleEscape>
<Text>
<TextToken>8</TextToken>
</Text>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Malformed_named_back_reference.Replace("<", "<").Replace(">", ">")}"" Span=""[35..37)"" Text=""\k"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..38)"" Text=""(?<cat>cat)\s+(?<dog>dog)\k8"" />
<Capture Name=""1"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""2"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
<Capture Name=""cat"" Span=""[10..21)"" Text=""(?<cat>cat)"" />
<Capture Name=""dog"" Span=""[24..35)"" Text=""(?<dog>dog)"" />
</Captures>
</Tree>", RegexOptions.ECMAScript);
}
[Fact]
public void NegativeTest128()
{
Test(@"@""(cat)(\7)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<BackreferenceEscape>
<BackslashToken>\</BackslashToken>
<NumberToken value=""7"">7</NumberToken>
</BackreferenceEscape>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Reference_to_undefined_group_number_0, "7")}"" Span=""[17..18)"" Text=""7"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..19)"" Text=""(cat)(\7)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..19)"" Text=""(\7)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest129()
{
Test(@"@""(cat)\s+(?<2147483648>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""-2147483648"">2147483648</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Capture_group_numbers_must_be_less_than_or_equal_to_Int32_MaxValue}"" Span=""[21..31)"" Text=""2147483648"" />
</Diagnostics>
<Captures>
<Capture Name=""-2147483648"" Span=""[18..36)"" Text=""(?<2147483648>dog)"" />
<Capture Name=""0"" Span=""[10..36)"" Text=""(cat)\s+(?<2147483648>dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest130()
{
Test(@"@""(cat)\s+(?<21474836481097>dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<OneOrMoreQuantifier>
<CharacterClassEscape>
<BackslashToken>\</BackslashToken>
<TextToken>s</TextToken>
</CharacterClassEscape>
<PlusToken>+</PlusToken>
</OneOrMoreQuantifier>
<CaptureGrouping>
<OpenParenToken>(</OpenParenToken>
<QuestionToken>?</QuestionToken>
<LessThanToken><</LessThanToken>
<NumberToken value=""1097"">21474836481097</NumberToken>
<GreaterThanToken>></GreaterThanToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</CaptureGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Capture_group_numbers_must_be_less_than_or_equal_to_Int32_MaxValue}"" Span=""[21..35)"" Text=""21474836481097"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..40)"" Text=""(cat)\s+(?<21474836481097>dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""1097"" Span=""[18..40)"" Text=""(?<21474836481097>dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest131()
{
Test(@"@""^[abcd]{1}*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ExactNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""1"">1</NumberToken>
<CloseBraceToken>}}</CloseBraceToken>
</ExactNumericQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[20..21)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..22)"" Text=""^[abcd]{{1}}*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest132()
{
Test(@"@""(cat)(\c*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrMoreQuantifier>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken />
</ControlEscape>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_control_character}"" Span=""[18..19)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""(cat)(\c*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..20)"" Text=""(\c*)"" />
<Capture Name=""3"" Span=""[20..25)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest133()
{
Test(@"@""(cat)(\c *)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken />
</ControlEscape>
<ZeroOrMoreQuantifier>
<Text>
<TextToken> </TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_control_character}"" Span=""[18..19)"" Text="" "" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""(cat)(\c *)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..21)"" Text=""(\c *)"" />
<Capture Name=""3"" Span=""[21..26)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest134()
{
Test(@"@""(cat)(\c?*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ZeroOrOneQuantifier>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken />
</ControlEscape>
<QuestionToken>?</QuestionToken>
</ZeroOrOneQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_control_character}"" Span=""[18..19)"" Text=""?"" />
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[19..20)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""(cat)(\c?*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..21)"" Text=""(\c?*)"" />
<Capture Name=""3"" Span=""[21..26)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest135()
{
Test(@"@""(cat)(\c`*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken />
</ControlEscape>
<ZeroOrMoreQuantifier>
<Text>
<TextToken>`</TextToken>
</Text>
<AsteriskToken>*</AsteriskToken>
</ZeroOrMoreQuantifier>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unrecognized_control_character}"" Span=""[18..19)"" Text=""`"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..26)"" Text=""(cat)(\c`*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..21)"" Text=""(\c`*)"" />
<Capture Name=""3"" Span=""[21..26)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest136()
{
Test(@"@""(cat)(\c\|*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Alternation>
<Sequence>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken>\</TextToken>
</ControlEscape>
</Sequence>
<BarToken>|</BarToken>
<Sequence>
<Text>
<TextToken>*</TextToken>
</Text>
</Sequence>
</Alternation>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>dog</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Quantifier_x_y_following_nothing}"" Span=""[20..21)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(cat)(\c\|*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..22)"" Text=""(\c\|*)"" />
<Capture Name=""3"" Span=""[22..27)"" Text=""(dog)"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest137()
{
Test(@"@""(cat)(\c\[*)(dog)""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken>\</TextToken>
</ControlEscape>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>*)(dog)</TextToken>
</Text>
</Sequence>
<CloseBracketToken />
</CharacterClass>
</Sequence>
<CloseParenToken />
</SimpleGrouping>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Unterminated_character_class_set}"" Span=""[27..27)"" Text="""" />
<Diagnostic Message=""{FeaturesResources.Not_enough_close_parens}"" Span=""[27..27)"" Text="""" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..27)"" Text=""(cat)(\c\[*)(dog)"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
<Capture Name=""2"" Span=""[15..27)"" Text=""(\c\[*)(dog)"" />
</Captures>
</Tree>", RegexOptions.None, runSubTreeTests: false);
}
[Fact]
public void NegativeTest138()
{
Test(@"@""^[abcd]{0,16}*$""", $@"<Tree>
<CompilationUnit>
<Sequence>
<StartAnchor>
<CaretToken>^</CaretToken>
</StartAnchor>
<ClosedRangeNumericQuantifier>
<CharacterClass>
<OpenBracketToken>[</OpenBracketToken>
<Sequence>
<Text>
<TextToken>abcd</TextToken>
</Text>
</Sequence>
<CloseBracketToken>]</CloseBracketToken>
</CharacterClass>
<OpenBraceToken>{{</OpenBraceToken>
<NumberToken value=""0"">0</NumberToken>
<CommaToken>,</CommaToken>
<NumberToken value=""16"">16</NumberToken>
<CloseBraceToken>}}</CloseBraceToken>
</ClosedRangeNumericQuantifier>
<Text>
<TextToken>*</TextToken>
</Text>
<EndAnchor>
<DollarToken>$</DollarToken>
</EndAnchor>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{string.Format(FeaturesResources.Nested_quantifier_0, "*")}"" Span=""[23..24)"" Text=""*"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..25)"" Text=""^[abcd]{{0,16}}*$"" />
</Captures>
</Tree>", RegexOptions.None);
}
[Fact]
public void NegativeTest139()
{
Test(@"@""(cat)\c""", $@"<Tree>
<CompilationUnit>
<Sequence>
<SimpleGrouping>
<OpenParenToken>(</OpenParenToken>
<Sequence>
<Text>
<TextToken>cat</TextToken>
</Text>
</Sequence>
<CloseParenToken>)</CloseParenToken>
</SimpleGrouping>
<ControlEscape>
<BackslashToken>\</BackslashToken>
<TextToken>c</TextToken>
<TextToken />
</ControlEscape>
</Sequence>
<EndOfFile />
</CompilationUnit>
<Diagnostics>
<Diagnostic Message=""{FeaturesResources.Missing_control_character}"" Span=""[16..17)"" Text=""c"" />
</Diagnostics>
<Captures>
<Capture Name=""0"" Span=""[10..17)"" Text=""(cat)\c"" />
<Capture Name=""1"" Span=""[10..15)"" Text=""(cat)"" />
</Captures>
</Tree>", RegexOptions.None);
}
}
}
|