In computers, case sensitivity defines whether uppercase and lowercase letters are treated as distinct or equivalent. For instance, when users interested in learning about dogs search an e-book, "dog" and "Dog" are of the same significance to them. Thus, they request a case-insensitive search. But when they search an online encyclopedia for information about the United Nations, they may prefer a case-sensitive search.
Areas of significance
Case sensitivity may differ depending on the situation:
Searching: Users expect information retrieval systems to be able to have correct case sensitivity depending on the nature of an operation. Users looking for the word "dog" in an online journal probably does not wish to differentiate between "dog" or "Dog", as this is a writing distinction; the word should be matched whether it appears at the beginning of a sentence or not. On the other hand, users looking for information about a brand name, trademark, human name, or city name may be interested in performing a case-sensitive operation to filter out irrelevant results. For example, somebody searching for the name "Jade" would not want to find references to the mineral called "jade". On the English Wikipedia for example a search for Friendly fire returns the military article but Friendly Fire returns the disambiguation page.
Usernames: Authentication systems usually treat usernames as case-insensitive to facilitate memorization, reducing typing complexity, and eliminate the possibility of both mistake and fraud when two usernames are identical in every aspect except the case of one of their letters. However, these systems are not case-blind. They preserve the case of the characters in the name so that users may choose an aesthetically pleasing combination.
Passwords: Authentication systems usually treat passwords as case-sensitive. This enables the users to increase the complexity of their passwords.
Variable names: Some programming languages are case-sensitive for their variable names while others are not. For more details, see below.
URLs: The path, query, fragment, and authority sections of a URL may or may not be case-sensitive, depending on the receiving web server. The scheme and host parts, however, are strictly lowercase.
In programming languages
Some programming languages are case-sensitive for their identifiers. Others are case-insensitive, such as ABAP, Ada, most BASICs, Fortran, SQL and Pascal. There are also languages, such as Haskell, Prolog, and Go, in which the capitalisation of an identifier encodes information about its semantics. Some other programming languages have varying case-sensitivity; in PHP, for example, variable names are case-sensitive but function names are not case sensitive. This means that if you define a function in lowercase, you can call it in uppercase, but if you define a variable in lowercase, you cannot refer to it in uppercase. Nim is case-insensitive and ignores underscores, as long as the first characters match.
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", "language", and "LANGUAGE" ; 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. In Oracle SQL most operations and searches are case-sensitive by default, while in most other DBMS's SQL searches are case-insensitive by default. 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 filesystems in Unix-like systems, filenames are usually case-sensitive. MacOS is somewhat unusual in that, by default, it uses HFS+ in a case-insensitive but case-preserving mode 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. 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.