Fix special character detection in protocols

My previous fix made chrome-extension to be divided into several parts, and then screw up the host part later on.
So now it uses a single character class, and it works flawlessly.

Had to change \w into a-zA-Z (more precisely what the spec allows anyway, without unicode chars) because Webstorm complaines about having character ranges inside character classes.