Scripts or character sets that have lower and upper case versions on letters are called bicameral (Roman, Greek and Cyrillic) and other scripts where there is no such casing are called unicameral.

Are there scripts that distinguish upper vs. lower case on characters apart from letters, say punctuation marks, digits on numbers or other symbols?


Probably the closest thing coming to your question are the Greek Numeral signs Stigma and Digamma (6), Qoppa (90), and Sanpi (900) that aren't used as letters anymore, but have uppercase and lowercase forms.

There are also uppercase and lowercase Roman Numerals.

Note that bicameral scripts are rare (compared to the number of writing systems), there are only three fully bicameral scripts (Latin, Greek, and Cyrillic), and one that once was bicameral (Georgian). [I don't know how bicameral Glagolitic is, at least it has both cases in Unicode.]

  • I don't know whether I should accept your answer. Although sanpi, qoppa and digamma/stigma have separate Unicode codepoints for lowercase and uppercase variants, these are letters while at the same time used as numerals as well? I prefer the Roman numerals you mentioned in a comment. – Noble_Bright_Life Jan 28 '16 at 9:34
  • If we go by Unicode, then the separate Roman numeral glyphs are not considered upper and lower. (Whereas the Greek letters are, well, letters.) – Adam Bittlingmayer Jan 28 '16 at 10:48
  • I have chosen this as the correct answer. Seems like there's a lot of letters that alternates as mathematical letters with both lowercase and uppercase variants, as well as mathematical numerals and symbols with regular and small variants. – Noble_Bright_Life Jan 29 '16 at 15:17

According to python, not in the UTF-16 (UCS-2):

import sys
for i in range(0, sys.maxunicode): # 0x10000
    c = unichr(i)
    if (not c.isalpha()) and (c.islower() or c.isupper()):
        print c.encode('utf-8')
# This code prints nothing

However, one could reasonably disagree with the Unicode Consortium's view that a combined glyph Roman numeral u'Ⅺ' (8554) is not uppercase and u'ⅺ' (8570) is not lowercase.

The Roman letters I, X, M and and Greek letters Stigma and Digamma, Qoppa, and Sanpi and so on are technically letters. (See https://en.wikipedia.org/wiki/Koppa_(letter) etc)


>>> u'ϟ'.isalpha() and u'ϙ'.isalpha() and u'ϡ'.isalpha()

If we consider the cedilla (0327), there are cases where it takes different forms based on the casing of the letter it graces: u'Ģ' vs u'ģ'.

  • You can configure python to use UTF-32 with ./configure --enable-unicode=ucs4 – Adam Bittlingmayer Jan 28 '16 at 10:24
  • 1
    Thanks for your answer. When I wrote "not a letter", I was thinking of a letter with pure alphabetic usage. Although I also wrote "digits on numbers" , letters with numerical usage will do for my purpose. – Noble_Bright_Life Jan 29 '16 at 15:31
  • Understand. I would say every letter is used as a non-letter in some context. In the Latin alphabet, en.wikipedia.org/wiki/%C3%98_(disambiguation) is particularly overloaded, although in theory people in 2016 should use different Unicode chars for the different non-letter uses. – Adam Bittlingmayer Jan 29 '16 at 15:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.