Overhaul the prefix matcher regex logic

* escape non-alphanumeric characters
* try to handle more identifier characters in the matching logic
* do either a lower case or camel case match