Code cleanup

Cleaned up method docs, added @throws and some missing @params and @return. Removed unnecessary @return

cleaned up logic in the match method. (flase !== isset(.....)) is logically equivalent to "if false not equal to isset failing" other wise expressed as isset === true, or more cleanly just isset

cleaned up several if statements using backwards logic. false === $regex is not standards compliant in any standard. replaced with a standard !$regex or "if regex is false"
Looks like you're using spaces for indentation, when the rest of the file uses tabs.

Could you change this to tabs for consistency?