Open main menu

Wikipedia β

Case sensitivity

  (Redirected from Case-insensitive)

In computers, uppercase and lowercase text may be treated as distinct (case sensitivity) or equivalent (case insensitivity). For example, the following are sometimes case-sensitive, sometimes not:

Some programming languages are case-sensitive for their identifiers (C, C++, Java, C#, Verilog,[1] Ruby[2] and XML). Others are case-insensitive (i.e., not case-sensitive), such as ABAP, Ada, most BASICs (an exception being BBC BASIC), Fortran, SQL[NB 1] and Pascal. There are also languages, such as Haskell, Prolog, and Go, in which the capitalisation of an identifier encodes information about its semantics.

A text search operation could be case-sensitive or case-insensitive, depending on the system, application, or context. The user can in many cases specify whether a search is sensitive to case, e.g. in most text editors, word processors, and Web browsers. A case-insensitive search is more comprehensive, finding "Language" (at the beginning of a sentence), "language", and "LANGUAGE" (in a title in capitals); a case-sensitive search will find the computer language "BASIC" but exclude most of the many unwanted instances of the word. For example, the Google Search engine is basically case-insensitive, with no option for case-sensitive search.[3] In Oracle SQL most operations and searches are case-sensitive by default,[4] while in most other DBMS's SQL searches are case-insensitive by default.[5]

Case-insensitive operations are sometimes said to fold case, from the idea of folding the character code table so that upper- and lowercase letters coincide.

In filesystems in Unix-like systems, filenames are usually case-sensitive (there can be separate readme.txt and Readme.txt files in the same directory). macOS is somewhat unusual in that, by default, it uses HFS+ in a case-insensitive (so that there cannot be a readme.txt and a Readme.txt in the same directory) but case-preserving mode (so that a file created as readme.txt is shown as readme.txt and a file created as Readme.txt is shown as Readme.txt) by default. This causes some issues for developers and power users, because most other environments are case-sensitive, but many Mac Installers fail on case-sensitive file systems.

The older Microsoft Windows filesystems VFAT and FAT32 are not case-sensitive, but are case-preserving. The earlier FAT12 filesystem was case-insensitive and not case-preserving, so that a file whose name is entered as readme.txt or ReadMe.txt is saved as README.TXT.[6] Later Windows file systems such as NTFS are internally case-sensitive, and a readme.txt and a Readme.txt can coexist in the same directory. However, for practical purposes filenames behave as case-insensitive as far as users and most software are concerned.[7]


  1. ^ Although one can explicitly set a single database or column collation to be case-sensitive


  1. ^ Kernighan, Brian W.; Ritchie, Dennis M. (February 1978). "Chapter 2: Types, Operators and Expressions". The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. p. 33. ISBN 0-13-110163-3. 
  2. ^ Matsumoto, Yukihiro (January 2002). "Chapter 2: Language Basics". Ruby in a nutshell (1st ed.). O'Reilly Media. p. 9. ISBN 0-596-00214-9. 
  3. ^ "case-sensitive-search - case sensitive google search - Google Project Hosting". Retrieved 2013-05-20. 
  4. ^ "2.10 Making Queries Case Insensitive". Oracle SQL Developer User's Guide, Release 1.5 (PDF). Oracle Corporation. August 2013. 
  5. ^ "MySQL :: MySQL 5.0 Reference Manual :: C.5.5.1 Case Sensitivity in String Searches". Retrieved 2013-05-20. 
  6. ^ "Case Sensitivity in Subsystem for UNIX-based Applications". 2005-08-22. Retrieved 2013-05-20. 
  7. ^ "Filenames are Case Sensitive on NTFS Volumes". 2006-11-01. Retrieved 2013-05-20.