There are three specifications of tokens: strings, language, and regular expressions. A string is a finite sequence of symbols drawn from a fixed alphabet. The length of a string is the number of symbols it contains. A language is any countable set of strings over an alphabet. Operations on strings include prefixes, suffixes, substrings, and subsequences. Operations on languages are union, concatenation, Kleene closure, and positive closure. These operations combine strings or languages in various ways, such as concatenating strings to form new strings.