Ignore tokens in RegExp

Some tokens in RegExp literal caused the following problems:

- `require()` calls in RegExp literal are wrongly detected. e.g. `var pattern = /require("a")/;` then `a` is detected.
- Unclosed quotes messes up the state so that following `require()` calls are not properly detected. e.g. `var pattern = /"/; require("a");` then `a` is not detected.

To fix those issues, this patch treats RegExp literals as strings with slash as quote. To keep supporting shebang that inevitably contains slashes, now it is handled before the parsing starts.