syn sync linebreaks=1
"additions to HTML groups
-syn region htmlItalic start="\\\@<!\*\S\@=" end="\S\@<=\\\@<!\*" keepend oneline
+syn region htmlItalic start="\\\@<!\*\ze\S" end="\S\zs\\\@<!\*" keepend oneline
syn region htmlItalic start="\(^\|\s\)\@<=_\|\\\@<!_\([^_]\+\s\)\@=" end="\S\@<=[^\\]_\|[^\\]_\S\@=" keepend oneline
-syn region htmlBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend oneline
-syn region htmlBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend oneline
-syn region htmlBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend oneline
-syn region htmlBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend oneline
+syn region htmlBold start="\*\*\ze\S" end="\S\zs\*\*" keepend oneline
+syn region htmlBold start="__\ze\S" end="\S\zs__" keepend oneline
+syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend oneline
+syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend oneline
" [link](URL) | [link][id] | [link][] | ![image](URL)
syn region mkdFootnotes matchgroup=mkdDelimiter start="\[^" end="\]"
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained
+"HTML headings
+syn region htmlH1 start="^\s*#" end="$" contains=@Spell
+syn region htmlH2 start="^\s*##" end="$" contains=@Spell
+syn region htmlH3 start="^\s*###" end="$" contains=@Spell
+syn region htmlH4 start="^\s*####" end="$" contains=@Spell
+syn region htmlH5 start="^\s*#####" end="$" contains=@Spell
+syn region htmlH6 start="^\s*######" end="$" contains=@Spell
+syn match htmlH1 /^.\+\n=\+$/ contains=@Spell
+syn match htmlH2 /^.\+\n-\+$/ contains=@Spell
+
"define Markdown groups
syn match mkdLineContinue ".$" contained
syn match mkdLineBreak / \+$/
syn match mkdRule /^\s*-\{3,}$/
syn match mkdRule /^\s*\*\{3,5}$/
-"HTML headings
-syn region htmlH1 start="^\s*#" end="$" contains=@Spell
-syn region htmlH2 start="^\s*##" end="$" contains=@Spell
-syn region htmlH3 start="^\s*###" end="$" contains=@Spell
-syn region htmlH4 start="^\s*####" end="$" contains=@Spell
-syn region htmlH5 start="^\s*#####" end="$" contains=@Spell
-syn region htmlH6 start="^\s*######" end="$" contains=@Spell
-syn match htmlH1 /^.\+\n=\+$/ contains=@Spell
-syn match htmlH2 /^.\+\n-\+$/ contains=@Spell
-
" YAML frontmatter
if get(g:, 'vim_markdown_frontmatter', 0)
syn include @yamlTop syntax/yaml.vim