public void TestFlags()
        {
            var regexOptions = new RegexOptions();

            Assert.IsFalse(regexOptions.HasFlag(RegexOptions.Singleline));

            regexOptions = regexOptions.SetFlags(RegexOptions.Singleline, RegexOptions.ECMAScript);
            Assert.IsTrue(regexOptions.HasFlag(RegexOptions.Singleline));
            Assert.IsTrue(regexOptions.HasFlag(RegexOptions.ECMAScript));
            Assert.IsTrue(regexOptions.HasFlags(RegexOptions.ECMAScript));
            Assert.IsTrue(regexOptions.HasFlags(RegexOptions.Singleline, RegexOptions.ECMAScript));
            Assert.IsFalse(regexOptions.HasFlags(RegexOptions.Singleline, RegexOptions.ExplicitCapture));

            regexOptions = regexOptions.SetFlag(RegexOptions.ExplicitCapture);
            regexOptions = regexOptions.ClearFlags(RegexOptions.Singleline, RegexOptions.IgnorePatternWhitespace);
            Assert.IsFalse(regexOptions.HasFlag(RegexOptions.Singleline));
            Assert.IsTrue(regexOptions.HasFlag(RegexOptions.ExplicitCapture));

            regexOptions = regexOptions.ClearFlag(RegexOptions.ExplicitCapture);
            Assert.IsFalse(regexOptions.HasFlag(RegexOptions.ExplicitCapture));
        }