static void Main(string[] args)
        {
            var urlExp = new VerbalExpressions()
                                .StartOfLine()
                                .Then("http")
                                .Maybe("s")
                                .Then("://")
                                .AnythingBut(" ")
                                .EndOfLine();

            var emailExp = new VerbalExpressions()
                                .StartOfLine()
                                .Anything()
                                .Then("@")
                                .AnythingBut(" ")
                                .Then(".")
                                .AnythingBut(" ")
                                .EndOfLine();

            var phoneExp = new VerbalExpressions()
                                .StartOfLine()
                                .Maybe("(")
                                .Range('0', '9')
                                .RepeatPrevious(3)
                                .Maybe(")")
                                .Maybe(" ")
                                .Range('0', '9')
                                .RepeatPrevious(3)
                                .Maybe("-")
                                .Range('0', '9')
                                .RepeatPrevious(4)
                                .EndOfLine();

            var url = "http://www.exceptionnotfound.net";
            var email = "*****@*****.**";
            var invalidEmail = "test@example";
            var phone = "(123) 456-7890";

            Assert.IsTrue(urlExp.Test(url), "The URL is not valid!");
            Assert.IsTrue(emailExp.Test(email), "The email is not valid!");
            Assert.IsTrue(phoneExp.Test(phone), "The phone number is invalid.");
            Assert.IsTrue(emailExp.Test(invalidEmail), "The email is not valid!");
        }
        public void TestingIfWeHaveAValidURL()
        {
            verbEx = VerbalExpressions.DefaultExpression
                        .StartOfLine()
                        .Then("http")
                        .Maybe("s")
                        .Then("://")
                        .Maybe("www.")
                        .AnythingBut(" ")
                        .EndOfLine();

            var testMe = "https://www.google.com";

            Assert.IsTrue(verbEx.Test(testMe), "The URL is incorrect");
        }
        public void Tab_WhenCalled_ReturnsExpectedExpression()
        {
            //Arrange
            verbEx = VerbalExpressions.DefaultExpression;
            string text = string.Format("text that contains {0} a tab",@"\t");

            //Act
            verbEx.Tab();

            //Assert
            Assert.IsTrue(verbEx.Test(text));
        }
        public void Multiple_WhenParamIsGiven_ShouldMatchOneOrMultipleValuesGiven()
        {
            //Arrange
            verbEx = VerbalExpressions.DefaultExpression;
            string text = "testesting 123 yahoahoahou another test";
            string expectedExpression = "y(aho)+u";
            //Act
            verbEx.Add("y")
                .Multiple("aho")
                .Add("u");

            //Assert
            Assert.IsTrue(verbEx.Test(text));
            Assert.AreEqual(expectedExpression, verbEx.ToString());
        }
        public void LineBreak_WhenCalled_ReturnsExpectedExpression()
        {
            //Arrange
            verbEx = VerbalExpressions.DefaultExpression;
            string text = string.Format("testin with {0} line break",Environment.NewLine);

            //Act
            verbEx.LineBreak();
            //Assert
            Assert.IsTrue(verbEx.Test(text));
        }
        public void TestingIfWeHaveAValidURL()
        {
            verbEx = new VerbalExpressions()
                        .StartOfLine()
                        .Then( "http" )
                        .Maybe( "s" )
                        .Then( "://" )
                        .Maybe( "www." )
                        .AnythingBut( " " )
                        .Then(".com")
                        .EndOfLine();

            var testMe = "https://www.google.com";
            Assert.IsTrue(verbEx.Test( testMe ), "The URL is incorrect");
            Console.WriteLine("We have a correct URL ");
        }