Simplified strong/emphasis regexps

I'm doing research on the Markdown syntax and I was looking through your Markdown library to figure out what was the exact rules with regards to strong/emphasis. While reading the corresponding regular expressions I noticed they were a bit more complicated than necessary.

For instance, the assertion `(?<=\S|^)` means "preceded by not-a-space, or nothing at all". What it really means is "not preceded by a space" which can be expressed as `(?<!\s)`. The same applies to lookahead assertions. Then, once those assertions are simplified they can be merged with compatible assertions around them.

```
(?<=\S|^) becomes (?<!\s)
(?=\S|$)  becomes (?!\s)
(?<!\s)(?<!\*) becomes (?<![\s*])
(?<!\s)(?<!_)  becomes (?<![\s_])
(?!\s)(?![\.,:;]\s) becomes (?![\.,:;]?\s)
```