There is a plain-text database of information about every Unicode character available from the Unicode Consortium; the format is described in Unicode Annex #44. The primary information is contained in UnicodeData.txt. Open and close punctuation characters are denoted with Ps
(punctuation start) and Pe
(punctuation end) in the General_Category field (the third field, delimited by ;
). Look for those character, and you’ll find what you’re looking for.
Note that not all characters that you consider brackets may be listed; for instance, quotation marks (including “«»”). are indicated with Pi
and Pf
(initial and final punctuation), so you might want to include those as well. And some character, like <
and >
, are used as brackets in some contexts (such as HTML/XML), while they are considered math symbols (Sm
) in UnicodeData.txt. Those you are going to have to find by hand; there is no pre-determined listing of those.
Here’s a quick Bash script to get this information, and its output. I’ve included both brackets and quotes. (note: on some Bash implementations UTF-8 printing has a bug that causes it to print U+00AB “«” and U+00BB “»” as “?”, and some terminals don’t have the ability to render all characters correctly.)
while IFS=';' read number name category rest
do
if [[ "$category" =~ Ps|Pe|Pi|Pf ]]
then
printf "%s (U+%s, %s): \u"$number"\n" "$name" "$number" "$category"
fi
done <UnicodeData.txt
LEFT PARENTHESIS (U+0028, Ps): ( RIGHT PARENTHESIS (U+0029, Pe): ) LEFT SQUARE BRACKET (U+005B, Ps): [ RIGHT SQUARE BRACKET (U+005D, Pe): ] LEFT CURLY BRACKET (U+007B, Ps): { RIGHT CURLY BRACKET (U+007D, Pe): } LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00AB, Pi): « RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB, Pf): » TIBETAN MARK GUG RTAGS GYON (U+0F3A, Ps): ༺ TIBETAN MARK GUG RTAGS GYAS (U+0F3B, Pe): ༻ TIBETAN MARK ANG KHANG GYON (U+0F3C, Ps): ༼ TIBETAN MARK ANG KHANG GYAS (U+0F3D, Pe): ༽ OGHAM FEATHER MARK (U+169B, Ps): ᚛ OGHAM REVERSED FEATHER MARK (U+169C, Pe): ᚜ LEFT SINGLE QUOTATION MARK (U+2018, Pi): ‘ RIGHT SINGLE QUOTATION MARK (U+2019, Pf): ’ SINGLE LOW-9 QUOTATION MARK (U+201A, Ps): ‚ SINGLE HIGH-REVERSED-9 QUOTATION MARK (U+201B, Pi): ‛ LEFT DOUBLE QUOTATION MARK (U+201C, Pi): “ RIGHT DOUBLE QUOTATION MARK (U+201D, Pf): ” DOUBLE LOW-9 QUOTATION MARK (U+201E, Ps): „ DOUBLE HIGH-REVERSED-9 QUOTATION MARK (U+201F, Pi): ‟ SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039, Pi): ‹ SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A, Pf): › LEFT SQUARE BRACKET WITH QUILL (U+2045, Ps): ⁅ RIGHT SQUARE BRACKET WITH QUILL (U+2046, Pe): ⁆ SUPERSCRIPT LEFT PARENTHESIS (U+207D, Ps): ⁽ SUPERSCRIPT RIGHT PARENTHESIS (U+207E, Pe): ⁾ SUBSCRIPT LEFT PARENTHESIS (U+208D, Ps): ₍ SUBSCRIPT RIGHT PARENTHESIS (U+208E, Pe): ₎ LEFT-POINTING ANGLE BRACKET (U+2329, Ps): 〈 RIGHT-POINTING ANGLE BRACKET (U+232A, Pe): 〉 MEDIUM LEFT PARENTHESIS ORNAMENT (U+2768, Ps): ❨ MEDIUM RIGHT PARENTHESIS ORNAMENT (U+2769, Pe): ❩ MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT (U+276A, Ps): ❪ MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT (U+276B, Pe): ❫ MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT (U+276C, Ps): ❬ MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT (U+276D, Pe): ❭ HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT (U+276E, Ps): ❮ HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT (U+276F, Pe): ❯ HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT (U+2770, Ps): ❰ HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT (U+2771, Pe): ❱ LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT (U+2772, Ps): ❲ LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT (U+2773, Pe): ❳ MEDIUM LEFT CURLY BRACKET ORNAMENT (U+2774, Ps): ❴ MEDIUM RIGHT CURLY BRACKET ORNAMENT (U+2775, Pe): ❵ LEFT S-SHAPED BAG DELIMITER (U+27C5, Ps): ⟅ RIGHT S-SHAPED BAG DELIMITER (U+27C6, Pe): ⟆ MATHEMATICAL LEFT WHITE SQUARE BRACKET (U+27E6, Ps): ⟦ MATHEMATICAL RIGHT WHITE SQUARE BRACKET (U+27E7, Pe): ⟧ MATHEMATICAL LEFT ANGLE BRACKET (U+27E8, Ps): ⟨ MATHEMATICAL RIGHT ANGLE BRACKET (U+27E9, Pe): ⟩ MATHEMATICAL LEFT DOUBLE ANGLE BRACKET (U+27EA, Ps): ⟪ MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET (U+27EB, Pe): ⟫ MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET (U+27EC, Ps): ⟬ MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET (U+27ED, Pe): ⟭ MATHEMATICAL LEFT FLATTENED PARENTHESIS (U+27EE, Ps): ⟮ MATHEMATICAL RIGHT FLATTENED PARENTHESIS (U+27EF, Pe): ⟯ LEFT WHITE CURLY BRACKET (U+2983, Ps): ⦃ RIGHT WHITE CURLY BRACKET (U+2984, Pe): ⦄ LEFT WHITE PARENTHESIS (U+2985, Ps): ⦅ RIGHT WHITE PARENTHESIS (U+2986, Pe): ⦆ Z NOTATION LEFT IMAGE BRACKET (U+2987, Ps): ⦇ Z NOTATION RIGHT IMAGE BRACKET (U+2988, Pe): ⦈ Z NOTATION LEFT BINDING BRACKET (U+2989, Ps): ⦉ Z NOTATION RIGHT BINDING BRACKET (U+298A, Pe): ⦊ LEFT SQUARE BRACKET WITH UNDERBAR (U+298B, Ps): ⦋ RIGHT SQUARE BRACKET WITH UNDERBAR (U+298C, Pe): ⦌ LEFT SQUARE BRACKET WITH TICK IN TOP CORNER (U+298D, Ps): ⦍ RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER (U+298E, Pe): ⦎ LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER (U+298F, Ps): ⦏ RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER (U+2990, Pe): ⦐ LEFT ANGLE BRACKET WITH DOT (U+2991, Ps): ⦑ RIGHT ANGLE BRACKET WITH DOT (U+2992, Pe): ⦒ LEFT ARC LESS-THAN BRACKET (U+2993, Ps): ⦓ RIGHT ARC GREATER-THAN BRACKET (U+2994, Pe): ⦔ DOUBLE LEFT ARC GREATER-THAN BRACKET (U+2995, Ps): ⦕ DOUBLE RIGHT ARC LESS-THAN BRACKET (U+2996, Pe): ⦖ LEFT BLACK TORTOISE SHELL BRACKET (U+2997, Ps): ⦗ RIGHT BLACK TORTOISE SHELL BRACKET (U+2998, Pe): ⦘ LEFT WIGGLY FENCE (U+29D8, Ps): ⧘ RIGHT WIGGLY FENCE (U+29D9, Pe): ⧙ LEFT DOUBLE WIGGLY FENCE (U+29DA, Ps): ⧚ RIGHT DOUBLE WIGGLY FENCE (U+29DB, Pe): ⧛ LEFT-POINTING CURVED ANGLE BRACKET (U+29FC, Ps): ⧼ RIGHT-POINTING CURVED ANGLE BRACKET (U+29FD, Pe): ⧽ LEFT SUBSTITUTION BRACKET (U+2E02, Pi): ⸂ RIGHT SUBSTITUTION BRACKET (U+2E03, Pf): ⸃ LEFT DOTTED SUBSTITUTION BRACKET (U+2E04, Pi): ⸄ RIGHT DOTTED SUBSTITUTION BRACKET (U+2E05, Pf): ⸅ LEFT TRANSPOSITION BRACKET (U+2E09, Pi): ⸉ RIGHT TRANSPOSITION BRACKET (U+2E0A, Pf): ⸊ LEFT RAISED OMISSION BRACKET (U+2E0C, Pi): ⸌ RIGHT RAISED OMISSION BRACKET (U+2E0D, Pf): ⸍ LEFT LOW PARAPHRASE BRACKET (U+2E1C, Pi): ⸜ RIGHT LOW PARAPHRASE BRACKET (U+2E1D, Pf): ⸝ LEFT VERTICAL BAR WITH QUILL (U+2E20, Pi): ⸠ RIGHT VERTICAL BAR WITH QUILL (U+2E21, Pf): ⸡ TOP LEFT HALF BRACKET (U+2E22, Ps): ⸢ TOP RIGHT HALF BRACKET (U+2E23, Pe): ⸣ BOTTOM LEFT HALF BRACKET (U+2E24, Ps): ⸤ BOTTOM RIGHT HALF BRACKET (U+2E25, Pe): ⸥ LEFT SIDEWAYS U BRACKET (U+2E26, Ps): ⸦ RIGHT SIDEWAYS U BRACKET (U+2E27, Pe): ⸧ LEFT DOUBLE PARENTHESIS (U+2E28, Ps): ⸨ RIGHT DOUBLE PARENTHESIS (U+2E29, Pe): ⸩ LEFT ANGLE BRACKET (U+3008, Ps): 〈 RIGHT ANGLE BRACKET (U+3009, Pe): 〉 LEFT DOUBLE ANGLE BRACKET (U+300A, Ps): 《 RIGHT DOUBLE ANGLE BRACKET (U+300B, Pe): 》 LEFT CORNER BRACKET (U+300C, Ps): 「 RIGHT CORNER BRACKET (U+300D, Pe): 」 LEFT WHITE CORNER BRACKET (U+300E, Ps): 『 RIGHT WHITE CORNER BRACKET (U+300F, Pe): 』 LEFT BLACK LENTICULAR BRACKET (U+3010, Ps): 【 RIGHT BLACK LENTICULAR BRACKET (U+3011, Pe): 】 LEFT TORTOISE SHELL BRACKET (U+3014, Ps): 〔 RIGHT TORTOISE SHELL BRACKET (U+3015, Pe): 〕 LEFT WHITE LENTICULAR BRACKET (U+3016, Ps): 〖 RIGHT WHITE LENTICULAR BRACKET (U+3017, Pe): 〗 LEFT WHITE TORTOISE SHELL BRACKET (U+3018, Ps): 〘 RIGHT WHITE TORTOISE SHELL BRACKET (U+3019, Pe): 〙 LEFT WHITE SQUARE BRACKET (U+301A, Ps): 〚 RIGHT WHITE SQUARE BRACKET (U+301B, Pe): 〛 REVERSED DOUBLE PRIME QUOTATION MARK (U+301D, Ps): 〝 DOUBLE PRIME QUOTATION MARK (U+301E, Pe): 〞 LOW DOUBLE PRIME QUOTATION MARK (U+301F, Pe): 〟 ORNATE LEFT PARENTHESIS (U+FD3E, Ps): ﴾ ORNATE RIGHT PARENTHESIS (U+FD3F, Pe): ﴿ PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET (U+FE17, Ps): ︗ PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET (U+FE18, Pe): ︘ PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS (U+FE35, Ps): ︵ PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS (U+FE36, Pe): ︶ PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET (U+FE37, Ps): ︷ PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET (U+FE38, Pe): ︸ PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET (U+FE39, Ps): ︹ PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET (U+FE3A, Pe): ︺ PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET (U+FE3B, Ps): ︻ PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET (U+FE3C, Pe): ︼ PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET (U+FE3D, Ps): ︽ PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET (U+FE3E, Pe): ︾ PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET (U+FE3F, Ps): ︿ PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET (U+FE40, Pe): ﹀ PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET (U+FE41, Ps): ﹁ PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET (U+FE42, Pe): ﹂ PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET (U+FE43, Ps): ﹃ PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET (U+FE44, Pe): ﹄ PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET (U+FE47, Ps): ﹇ PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET (U+FE48, Pe): ﹈ SMALL LEFT PARENTHESIS (U+FE59, Ps): ﹙ SMALL RIGHT PARENTHESIS (U+FE5A, Pe): ﹚ SMALL LEFT CURLY BRACKET (U+FE5B, Ps): ﹛ SMALL RIGHT CURLY BRACKET (U+FE5C, Pe): ﹜ SMALL LEFT TORTOISE SHELL BRACKET (U+FE5D, Ps): ﹝ SMALL RIGHT TORTOISE SHELL BRACKET (U+FE5E, Pe): ﹞ FULLWIDTH LEFT PARENTHESIS (U+FF08, Ps): ( FULLWIDTH RIGHT PARENTHESIS (U+FF09, Pe): ) FULLWIDTH LEFT SQUARE BRACKET (U+FF3B, Ps): [ FULLWIDTH RIGHT SQUARE BRACKET (U+FF3D, Pe): ] FULLWIDTH LEFT CURLY BRACKET (U+FF5B, Ps): { FULLWIDTH RIGHT CURLY BRACKET (U+FF5D, Pe): } FULLWIDTH LEFT WHITE PARENTHESIS (U+FF5F, Ps): ⦅ FULLWIDTH RIGHT WHITE PARENTHESIS (U+FF60, Pe): ⦆ HALFWIDTH LEFT CORNER BRACKET (U+FF62, Ps): 「 HALFWIDTH RIGHT CORNER BRACKET (U+FF63, Pe): 」