In Parameter Expansions / Case Modification: [S1] The first sentence reads, "alphabetic characters," which can imply that wherever else in the paragraph the word "characters" is used, that the intended meaning is "alphabetic characters," which is not the case. It can be read as something like a declaration of a specific conversation topic. This multiplicity of meaning in a single word, "characters," can be thought of as similar to a namespace collision.
[S3] The third sentence makes no distinction between alphabetic characters and ASCII characters, although in practice such a distinction exists. $ yy='./scripts_install-ups' $ echo ${yy^s} ./scripts_install-ups $ yy='scripts_install-ups' $ echo ${yy^s} Scripts_install-ups The third sentence could read more clearly with the inclusion of one word: "ASCII" (changes are underlined). Before: 3) Each character in the expanded value of parameter is tested against pattern, and, if it matches the pattern, its case is converted. After: 3) Each _ASCII_ character in the expanded value of parameter is tested against pattern, and, if it matches the pattern, its case is converted. Without the inclusion of the word "ASCII," sentence three (as well as sentence six, below) can easily be read incorrectly as applying only to "alphabetic characters" as a result of the implied topic declaration in sentence one. [S5] Sentence five speaks of "the ^ operator" and "the , operator" - however this use of English language is again unclear. There are four meaningful syntactical forms involved in this Parameter Expansion: , ^ ,, ^^ They are composed of varying combinations of two raw constituent ASCII characters: , ^ (\x2c and \x5e) There's an overlap, when the text reads, "the ^ operator" it can be read as referring to either a specific and meaningful syntactical form, (^), or a raw constituent ASCII character, (^). It appears that the latter meaning is intended. Otherwise, the descriptions would contradict each other of the single-character PE operators in both sentence five and the second half of sentence six. Elsewhere in the manual the word "operator" is also used. >From a partial search, it appears that the word tends to be used much more often to refer to specific meaningful syntactical forms rather than raw ASCII characters. declare -a control_operators=( [0]="||" [1]="&" [2]="&&" ) declare -a parameter_transformation_operators=( [0]="U" [1]="u" [2]="L" ) Sentence five could read more clearly as (changes underlined): Before: 5) The ^ operator converts lowercase letters matching pattern to uppercase; the , operator converts matching uppercase letters to lowercase. After: 5) The _operators_ _containing_ _ASCII_ _^_ _characters_ _convert_ lowercase letters matching pattern to uppercase, and _operators_ _containing_ _ASCII_ _,_ _characters_ convert matching uppercase letters to lowercase. [S6] Sentence six could benefit from a change similar to that of sentence three. Before: 6) The ^^ and ,, expansions convert each matched character in the expanded value; the ^ and , expansions match and convert only the first character in the expanded value. After: 6) The ^^ and ,, expansions convert each matched character in the expanded value; the ^ and , expansions match and convert only the first _ASCII_ character in the expanded value. I hope this suggestion helps. cHEERS, Wiley