This behavior really does not make any sense. If number took two inputs, min and max, you can easily figure out maxlength from it, so it should not be a separate input option because having conflicting maxlength and max would just cause confusion.

number:min:max should be expected behavior; number:min:maxlength & number:min:maxlength:(9*max) isn't going to be expected by anyone and causes conflicts (such as max:99, maxlength:4).