Improve regex to match valid JS names.

Almost according to ES 5.1, except for the unicode madness:
http://stackoverflow.com/questions/1661197/valid-characters-for-javascript-variable-names
Tests for Match.Error path.