> Agreed, the default value should be true or the constraint can't work using only defaults values

Ok.

> The rule startIndex and endIndex is the same for String#substring(int, int), instead of changing this behavior we should link this on docs.

What I meant is, today the setting to be specified for `startIndex` and `endIndex` depends on the `ignoreNonDigitCharacters` setting. You either have to count only digits or all characters. Wouldn't it be simpler if you always take all character into account (indeed applying `subString()` semantics to the complete given string)?

The other thing is that `ignoreNonDigitCharacters` currently refers to the entire String but I think it would make more sense if it only referred to the given interval (if one is given). Otherwise you can't process mod11 values such as "123-456-789-X" where you want to ignore the "-" in the number to be validated ("123-456-789") but the check digit could be a character.