/// ------------------------------------------------------------------------------------
        private string GetPhonesRunInPattern(string pattern)
        {
            while (true)
            {
                var match = PatternParser.FindInnerMostParenthesePair(pattern);
                if (!match.Success)
                {
                    break;
                }
                pattern = pattern.Replace(match.Value, string.Empty);
            }

            while (true)
            {
                var match = PatternParser.FindInnerMostSquareBracketPairs(pattern);
                if (!match.Success)
                {
                    break;
                }
                pattern = pattern.Replace(match.Value, string.Empty);
            }

            while (true)
            {
                var match = PatternParser.FindInnerAngleBracketPairs(pattern);
                if (!match.Success)
                {
                    break;
                }
                pattern = pattern.Replace(match.Value, string.Empty);
            }

            pattern = pattern.Replace(",", string.Empty);
            pattern = pattern.Replace("[", string.Empty);
            pattern = pattern.Replace("]", string.Empty);
            pattern = pattern.Replace("{", string.Empty);
            pattern = pattern.Replace("}", string.Empty);
            pattern = pattern.Replace("_", string.Empty);
            pattern = pattern.Replace("/", string.Empty);
            pattern = pattern.Replace("*", string.Empty);
            pattern = pattern.Replace("+", string.Empty);
            pattern = pattern.Replace("NOT", string.Empty);
            return(pattern.Replace("#", string.Empty));
        }
        /// ------------------------------------------------------------------------------------
        public void VerifyTextInAngleBrackets(string pattern)
        {
            var match = PatternParser.FindInnerAngleBracketPairs(pattern);

            while (match.Success)
            {
                var bracketedText = match.Result("${bracketedText}");

                if (!_project.SearchClasses.Any(c => c.Name == bracketedText))
                {
                    var msg = LocalizationManager.GetString("PhoneticSearchingMessages.InvalidTextInAngleBracketsMsg",
                                                            "The text '{0}' in angled brackets is not a valid class name.");

                    var error = new SearchQueryValidationError(string.Format(msg, bracketedText));
                    error.HelpLinks.Add("hidSearchPatternsExamples");
                    Errors.Add(error);
                }

                match = match.NextMatch();
            }
        }