case_id,category,char_name,codepoint,payload
"Q01","ascii","QUOTATION MARK (straight double)","U+0022","plain ""double"" quoted text"
"Q02","ascii","APOSTROPHE (straight single)","U+0027","plain 'single' quoted text"
"Q03","curly","LEFT DOUBLE QUOTATION MARK alone","U+201C","opens but no close: “hello"
"Q04","curly","RIGHT DOUBLE QUOTATION MARK alone","U+201D","closes with no open: hello”"
"Q05","curly","Word-style quoted phrase","U+201C U+201D","Word said “hello world” today"
"Q06","curly","LEFT SINGLE QUOTATION MARK","U+2018","left curly single: ‘marked"
"Q07","curly","RIGHT SINGLE / smart apostrophe","U+2019","smart apostrophe: don’t and won’t"
"Q08","curly","Curly single-quoted phrase","U+2018 U+2019","she said ‘ok’ quietly"
"Q09","low","DOUBLE LOW-9 (German opening)","U+201E","German style: „hallo"
"Q10","low","SINGLE LOW-9","U+201A","single low: ‚tag"
"Q11","low","DOUBLE HIGH-REVERSED-9","U+201F","high reversed double: ‟phrase"
"Q12","low","SINGLE HIGH-REVERSED-9","U+201B","high reversed single: ‛word"
"Q13","low","German-paired phrase (low-9 + curly)","U+201E U+201C","„hallo welt“"
"Q14","guillemet","LEFT DOUBLE ANGLE QUOTATION","U+00AB","french open: «bonjour"
"Q15","guillemet","RIGHT DOUBLE ANGLE QUOTATION","U+00BB","french close: bonjour»"
"Q16","guillemet","Guillemet-paired phrase","U+00AB U+00BB","«bonjour le monde»"
"Q17","guillemet","SINGLE LEFT ANGLE","U+2039","single open: ‹x"
"Q18","guillemet","SINGLE RIGHT ANGLE","U+203A","single close: x›"
"Q19","fullwidth","FULLWIDTH QUOTATION MARK","U+FF02","fullwidth dquote: "value""
"Q20","fullwidth","FULLWIDTH APOSTROPHE","U+FF07","fullwidth apos: 'value'"
"Q21","cjk","CJK CORNER BRACKETS","U+300C U+300D","japanese: 「こんにちは」"
"Q22","prime","PRIME (foot mark or minutes)","U+2032","5′ (5 feet) or 30′ latitude"
"Q23","prime","DOUBLE PRIME (inch mark or seconds)","U+2033","5″ (5 inches) or 11″ latitude"
"Q24","prime","Compound foot+inch measurement","U+2032 U+2033","she is 5′ 11″ tall"
"Q25","heavy","HEAVY SINGLE TURNED COMMA QUOTE","U+275B","❛heavy turned"
"Q26","heavy","HEAVY SINGLE COMMA QUOTE","U+275C","heavy comma❜"
"Q27","heavy","HEAVY DOUBLE TURNED COMMA QUOTE","U+275D","❝heavy double turned❞"
"Q28","modifier","MODIFIER LETTER APOSTROPHE","U+02BC","Hawaiʻi (apostrophe is the okina, a real letter)"
"Q29","modifier","MODIFIER LETTER PRIME","U+02B9","math notation aʹ"
"Q30","modifier","MODIFIER LETTER DOUBLE PRIME","U+02BA","math notation aʺ"
"Q31","mixed","ASCII + curly + smart apos all in one cell","mixed","ASCII ""x"" curly “y” and don’t forget"
"Q32","mixed","Curly outer with ASCII inner (Word paste pattern)","U+201C ... "" ... "" ... U+201D","“He said ""hi"" to me”"
"Q33","mixed","Asymmetric: curly open + ASCII close","U+201C ... ""","“mismatched"""
"Q34","mixed","Asymmetric: ASCII open + curly close",""" ... U+201D","""mismatched”"
"Q35","mixed","Three quote styles nested in one cell","all three","“outer ‘middle ""inner"" middle’ outer”"
"Q36","mixed","Curly quotes wrapping the ENTIRE cell content (parser sees as data)","U+201C ... U+201D","“whole-cell-wrapped”"