The docs for the pattern and allowedCharPattern features seem to fail at explaining the difference between the two properties. We could try rewriting the section to better clarify that pattern is for validating the whole value whereas allowedCharPattern is for preventing entry of individual characters.