"\\[ *(@)S *([!*$^=]*) *('?\"?)(.*?)\\4 *\\]",
// Match: [div], [div p]
- "(\\[)\\s*(.*?)\\s*\\]",
+ "(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]",
// Match: :contains('foo')
- "(:)S\\(\"?'?([^\\)]*?)\"?'?\\)",
+ "(:)S\\(\"?'?(.*?(\\(.*?\\))?[^(]*?)\"?'?\\)",
// Match: :even, :last-chlid
"([:.#]*)S"