public ActionResult RegexTree(string composedRegex)
        {
            var composed = new Regexer(composedRegex);

            return(new JsonResult
            {
                Data = new
                {
                    groups = composed.Groups,
                    final = composed.Final
                }
            });
        }
        public ActionResult Index(HomeModel regex)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var composed = new Regexer(regex.ComposableRegex);
                    regex.TransformedRegex = composed.Regex;
                    regex.IsMatch          = !String.IsNullOrEmpty(regex.TargetText) && Regex.IsMatch(regex.TargetText, regex.TransformedRegex);
                    regex.Trace            = composed.DebugTrace;

                    return(View(regex));
                }
                catch (Exception ex)
                {
                    return(View(new HomeModel
                    {
                        IsMatch = false,
                        TransformedRegex = "Something didn't work right!"
                    }));
                }
            }
            return(Index());
        }