protected internal override Value RecursiveCollectUnresolvedVariables(IEvalContext ctx)
            {
                SubExpressions[0].RecursiveCollectUnresolvedVariables(ctx);
                SubExpressions[1].RecursiveCollectUnresolvedVariables(ctx);
                Match m = m_Regex.Match("");

                m_LocalContext = new RegexMatchLocalContext(m_Regex.GetGroupNumbers(), m_Regex.GetGroupNames(), m.Groups);
                return(new BoolValue(!m_InvertResultValue));
            }
            public override Value Evaluate(IEvalContext ctx)
            {
                Match match = m_Regex.Match(SubExpressions[0].Evaluate(ctx).ToString());

                if (!match.Success)
                {
                    m_LocalContext = null;
                    return(new BoolValue(m_InvertResultValue));
                }

                m_LocalContext = new RegexMatchLocalContext(m_Regex.GetGroupNumbers(), m_Regex.GetGroupNames(), match.Groups);
                return(new BoolValue(!m_InvertResultValue));
            }