Add ability to limit input by matched values

- also do not remove text on re-focus if it conforms to matchers