These should all get escaped:
Backslash: \
Backtick: `
Asterisk: *
Underscore: _
Left brace: {
Right brace: }
Left bracket: [
Right bracket: ]
Left paren: (
Right paren: )
Greater-than: >
Hash: #
Period: .
Bang: !
Plus: +
Minus: -
These should not, because they occur within a code block:
Backslash: \\ Backtick: \` Asterisk: \* Underscore: \_ Left brace: \{ Right brace: \} Left bracket: \[ Right bracket: \] Left paren: \( Right paren: \) Greater-than: \> Hash: \# Period: \. Bang: \! Plus: \+ Minus: \-
Nor should these, which occur in code spans:
Backslash: \\
\\
Backtick: \`
\`
Asterisk: \*
\*
Underscore: \_
\_
Left brace: \{
\{
Right brace: \}
\}
Left bracket: \[
\[
Right bracket: \]
\]
Left paren: \(
\(
Right paren: \)
\)
Greater-than: \>
\>
Hash: \#
\#
Period: \.
\.
Bang: \!
\!
Plus: \+
\+
Minus: \-
\-