Allowable parses the pattern and determines the minimum and maximum allowable
values that the pattern can represent.
When the max cannot be determined, 'true' will be returned
for infinite.
'*' matches any sequence of non-Separator characters
'?' matches any single non-Separator character
c matches character c (c != '*', '?', '\\')
'\\' c matches character c