// todo: OnlyDigits()
        // todo: NotMatch(this Argument<string> arg, Regex regex)
        // todo: Char(5).IsDigit()

        private static bool ContainsPrivate(Argument <string> arg, string value, StringComparison comparisonType, string methodName)
        {
            InvalidMethodArgumentThrower.IfArgumentValueIsNull(arg, methodName);
            InvalidMethodArgumentThrower.IfArgumentOfMethodIsNull(value, nameof(value), methodName);

            return(arg.Value.IndexOf(value, comparisonType) >= 0);
        }
        private static bool EndsWithPrivate(Argument <string> arg, string value, StringComparison comparisonType, string methodName)
        {
            InvalidMethodArgumentThrower.IfArgumentValueIsNull(arg, methodName);
            InvalidMethodArgumentThrower.IfArgumentOfMethodIsNull(value, nameof(value), methodName);

            return(arg.Value.EndsWith(value, comparisonType));
        }
        /// <summary>
        /// Throws <see cref="ArgumentException"/> if argument is match <paramref name="pattern"/>
        /// </summary>
        /// <exception cref="ArgumentException">Throws if argument is match <paramref name="pattern"/></exception>
        /// <exception cref="ArgValidationException">Throws if argument is <c>null</c> or <paramref name="pattern"/> is <c>null</c></exception>
        public static Argument <string> NotMatch(this Argument <string> arg, string pattern)
        {
            if (arg.ValidationIsDisabled())
            {
                return(arg);
            }

            InvalidMethodArgumentThrower.IfArgumentValueIsNull(arg, methodName: nameof(NotMatch));
            InvalidMethodArgumentThrower.IfArgumentOfMethodIsNull(arg: pattern, argName: nameof(pattern), methodName: nameof(NotMatch));

            if (StringConditionChecker.Match(arg, pattern))
            {
                ValidationErrorExceptionThrower.ArgumentException(arg,
                                                                  $"Argument '{arg.Name}' not must be match with pattern '{pattern}'. Current value: {ExceptionMessageHelper.GetStringValueForMessage(arg.Value)}");
            }

            return(arg);
        }