=pod A string expanded through B can consist of arbitrary text characters plus one or more of the following special constructs. This is just a very brief summary. For details see var(3). =over 4 =item C<\\>, C<\>I Ordinary characters C<\> and I. =item C<\t>, C<\r>, C<\n> Tabulator, carriage return and newline character. =item C<\>I Character with the octal value I. =item C<\x>I Character with the hexadecial value I. =item C<\x{>IC<}> Characters denoted by grouped hexadecimal numbers I. =item C<$>I, C<${>IC<}> Contents of scalar variable I. =item C<${>IC<[>IC<]>C<}> Contents of array variable I at I position. For I full arithmetic expressions are allowed. =item C<${>IC<:#}> Length of C<$>I. =item ${name:l}, ${name:u} C<$>I, converted to all lower-case or all upper-case. =item ${name:-} If C<$>I is not empty string, then C<$>I, else I (default value). =item ${name:+} If C<$>I is empty string, then empty string, else I (positive alternative). =item C<${>IC<:*>IC<}> If C<$>I is not empty string, then empty string, else I (negative alternative). =item C<${>IC<:o>IC<,>[I]C<}> Substring of C<$>I starting at position I with I characters. =item C<${>IC<:o>IC<->[I]C<}> Substring of C<$>I starting at position I and ending at position I (inclusive). =item C<${>IC<:s/>ICIC[C]C<}> C<$>I after replacing characters matching I with I. By default, case-sensitive regular expression matching is performed and only the first occurance of I is replaced. Flag "C" switches to case insensitive matching; flag "C" switches to plain text pattern; flag "C" switches to replacements of all occurances. =item C<${>IC<:y/>ICIC C<$>I after replacing all characters found in the I character class by the corresponding character in the I character class. =item C<${>IC<:p/>ICIC{C,C,C}C<}> C<$>I after padding to I with I. Original contents of I is either left justified (flag "C"), centered (flag "C"), or right justified (flag "C"). =item C<[>IC<]>, C<[>IC<]>C<{>IC<,>IC<,>IC<}> Repeat expansion of I as long as at least one array variable does not expand to the empty string (first variant) or exactly (I-I)/I times (second variant). In both cases the character "C<#>" is expanded in C as the current loop index (C<0>,... for first variant and I,...,I with stepping I for second variant). I of array variable lookups. For I, I and I, full arithmetic expressions are allowed. =back