Should parse nested quotes: . "foo 'bar' baz" .

“foo ‘bar’ baz”

. . 'foo 'bar' baz' .

‘foo ‘bar’ baz’

. Should not overlap quotes: . 'foo "bar' baz" .

‘foo "bar’ baz"

. Should match quotes on the same level: . "foo *bar* baz" .

“foo bar baz”

. Should not match quotes on different levels: . *"foo* bar" "foo *bar"* .

"foo bar"

"foo bar"

. . *"foo* bar *baz"* .

"foo bar baz"

. Should try and find matching quote in this case: . "foo "bar 'baz" .

"foo “bar 'baz”

. Should not touch 'inches' in quotes: . "Monitor 21"" .

“Monitor 21"”

. Should render an apostrophe as a rsquo: . This isn't and can't be the best approach to implement this... .

This isn’t and can’t be the best approach to implement this…

. Apostrophe could end the word, that's why original smartypants replaces all of them as rsquo: . users' stuff .

users’ stuff

.