While most languages are given one code by the standard, twenty of the languages described have two three-letter codes, a "bibliographic" code (ISO 639-2/B), which is derived from the English name for the language and was a necessary legacy feature, and a "terminological" code (ISO 639-2/T), which is derived from the native name for the language and resembles the language's two-letter code in ISO 639-1. (There were originally 22 B codes; scc and scr are now deprecated.)

In general the T codes are favored; ISO 639-3 uses ISO 639-2/T. However, ISO 15924 derives its codes when possible from ISO 639-2/B.

B and T codes
Scopes and types
Collections of languages
Reserved for local use