@@ -565,6 +565,55 @@ public void TestSingleline()
565565 . Build ( ) ;
566566 Assert . IsTrue ( regex . IsMatch ( "test\n more" ) ) ;
567567 }
568+
569+ [ Test ]
570+ public void TestExplicitCapture ( )
571+ {
572+ var regex = RegexBuilder . Create ( )
573+ . Group ( b => b . Digit ( ) . Exactly ( 3 ) ) // Unnamed group - won't capture
574+ . Literal ( "-" )
575+ . NamedGroup ( "last" , b => b . Digit ( ) . Exactly ( 4 ) ) // Named group - will capture
576+ . ExplicitCapture ( )
577+ . Build ( ) ;
578+
579+ var match = regex . Match ( "123-4567" ) ;
580+ Assert . IsTrue ( match . Success ) ;
581+
582+ Assert . AreEqual ( "4567" , match . Groups [ "last" ] . Value ) ;
583+
584+ Assert . AreEqual ( 2 , match . Groups . Count ) ;
585+ }
586+
587+ [ Test ]
588+ public void TestCompiled ( )
589+ {
590+ var regex = RegexBuilder . Create ( )
591+ . Digit ( ) . OneOrMore ( )
592+ . Compiled ( )
593+ . Build ( ) ;
594+
595+ // Test that it works and has the Compiled option
596+ Assert . IsTrue ( regex . IsMatch ( "12345" ) ) ;
597+ Assert . IsTrue ( regex . Options . HasFlag ( RegexOptions . Compiled ) ) ;
598+ }
599+
600+ [ Test ]
601+ public void TestIgnorePatternWhitespace ( )
602+ {
603+ var builder = RegexBuilder . Create ( )
604+ . Digit ( ) . Exactly ( 3 )
605+ . Literal ( "-" )
606+ . Digit ( ) . Exactly ( 4 )
607+ . IgnorePatternWhitespace ( ) ;
608+
609+ var regex = builder . Build ( ) ;
610+
611+ // Verify the option is set
612+ Assert . IsTrue ( regex . Options . HasFlag ( RegexOptions . IgnorePatternWhitespace ) ) ;
613+
614+ // Pattern should still work normally
615+ Assert . IsTrue ( regex . IsMatch ( "123-4567" ) ) ;
616+ }
568617 #endregion
569618
570619 #region Pattern Building Tests
0 commit comments