diff --git a/autoload/emmet/lang/html.vim b/autoload/emmet/lang/html.vim
index 73a7559..78dc33d 100644
--- a/autoload/emmet/lang/html.vim
+++ b/autoload/emmet/lang/html.vim
@@ -5,7 +5,7 @@ let s:mx = '\([+>]\|[<^]\+\)\{-}\s*'
\ .'\('
\ .'\%('
\ .'\%(#{[{}a-zA-Z0-9_\-\$]\+\|#[a-zA-Z0-9_\-\$]\+\)'
-\ .'\|\%(\[\%("[^"]*"\|[^"\]]*\)\+\]\)'
+\ .'\|\%(\[\[[^\[\]]\+\]\|\%("[^"]*"\|[^"\]]*\)\+\]\)'
\ .'\|\%(\.{[{}a-zA-Z0-9_\-\$]\+\|\.[a-zA-Z0-9_\-\$]\+\)'
\ .'\)*'
\ .'\)'
@@ -249,7 +249,7 @@ function! emmet#lang#html#parseIntoTree(abbr, type) abort
if len(attributes)
let attr = attributes
while len(attr)
- let item = matchstr(attr, '\(\%(\%(#[{}a-zA-Z0-9_\-\$]\+\)\|\%(\[\%("[^"]*"\|[^"\]]*\)\+\]\)\|\%(\.[{}a-zA-Z0-9_\-\$]\+\)*\)\)')
+ let item = matchstr(attr, '\(\%(\%(#[{}a-zA-Z0-9_\-\$]\+\)\|\%(\[\%(\[[^\]]*\]\|"[^"]*"\|[^"\[\]]*\)\+\]\)\|\%(\.[{}a-zA-Z0-9_\-\$]\+\)*\)\)')
if g:emmet_debug > 1
echomsg 'attr=' . item
endif