aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1250
-rw-r--r--doc/gawk.texi54
-rw-r--r--doc/gawktexi.in54
4 files changed, 728 insertions, 635 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index d62a3880..702ff6ef 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-03-09 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Regexp Operators): Refactor a bit into subsections,
+ mention that BWK awk now has interval expressions.
+
2019-02-28 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Fix a spelling error, change update month.
diff --git a/doc/gawk.info b/doc/gawk.info
index b8ab270e..b026efc6 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -3647,7 +3647,18 @@ You can combine regular expressions with special characters, called
"regular expression operators" or "metacharacters", to increase the
power and versatility of regular expressions.
- The escape sequences described in *note Escape Sequences:: are valid
+* Menu:
+
+* Regexp Operator Details:: The actual details.
+* Interval Expressions:: Notes on interval expressions.
+
+
+File: gawk.info, Node: Regexp Operator Details, Next: Interval Expressions, Up: Regexp Operators
+
+3.3.1 Regexp Operators in 'awk'
+-------------------------------
+
+The escape sequences described in *note Escape Sequences:: are valid
inside a regexp. They are introduced by a '\' and are recognized and
converted into corresponding real characters as the very first step in
processing regexps.
@@ -3772,27 +3783,6 @@ sequences and that are not listed here stand for themselves:
'wh{2,}y'
Matches 'whhy', 'whhhy', and so on.
- Interval expressions were not traditionally available in 'awk'.
- They were added as part of the POSIX standard to make 'awk' and
- 'egrep' consistent with each other.
-
- Initially, because old programs may use '{' and '}' in regexp
- constants, 'gawk' did _not_ match interval expressions in regexps.
-
- However, beginning with version 4.0, 'gawk' does match interval
- expressions by default. This is because compatibility with POSIX
- has become more important to most 'gawk' users than compatibility
- with old programs.
-
- For programs that use '{' and '}' in regexp constants, it is good
- practice to always escape them with a backslash. Then the regexp
- constants are valid and work the way you want them to, using any
- version of 'awk'.(2)
-
- Finally, when '{' and '}' appear in regexp constants in a way that
- cannot be interpreted as an interval expression (such as '/q{a}/'),
- then they stand for themselves.
-
In regular expressions, the '*', '+', and '?' operators, as well as
the braces '{' and '}', have the highest precedence, followed by
concatenation, and finally by '|'. As in arithmetic, parentheses can
@@ -3803,15 +3793,49 @@ themselves when there is nothing in the regexp that precedes them. For
example, '/+/' matches a literal plus sign. However, many other
versions of 'awk' treat such a usage as a syntax error.
- If 'gawk' is in compatibility mode (*note Options::), interval
-expressions are not available in regular expressions.
-
---------- Footnotes ----------
(1) In other literature, you may see a bracket expression referred to
as either a "character set", a "character class", or a "character list".
- (2) Use two backslashes if you're using a string constant with a
+
+File: gawk.info, Node: Interval Expressions, Prev: Regexp Operator Details, Up: Regexp Operators
+
+3.3.2 Some Notes On Interval Expressions
+----------------------------------------
+
+Interval expressions were not traditionally available in 'awk'. They
+were added as part of the POSIX standard to make 'awk' and 'egrep'
+consistent with each other.
+
+ Initially, because old programs may use '{' and '}' in regexp
+constants, 'gawk' did _not_ match interval expressions in regexps.
+
+ However, beginning with version 4.0, 'gawk' does match interval
+expressions by default. This is because compatibility with POSIX has
+become more important to most 'gawk' users than compatibility with old
+programs.
+
+ For programs that use '{' and '}' in regexp constants, it is good
+practice to always escape them with a backslash. Then the regexp
+constants are valid and work the way you want them to, using any version
+of 'awk'.(1)
+
+ Finally, when '{' and '}' appear in regexp constants in a way that
+cannot be interpreted as an interval expression (such as '/q{a}/'), then
+they stand for themselves.
+
+ As mentioned, interval expressions were not traditionally available
+in 'awk'. In March of 2019, Brian Kernighan's 'awk' (finally) acquired
+them.
+
+ Nonetheless, because they were not available for so many decades,
+'gawk' continues to not supply them when in compatibility mode (*note
+Options::).
+
+ ---------- Footnotes ----------
+
+ (1) Use two backslashes if you're using a string constant with a
regexp operator or function.

@@ -33561,7 +33585,8 @@ Index
* $ (dollar sign), $ field operator <1>: Precedence. (line 42)
* $ (dollar sign), incrementing fields and arrays: Increment Ops.
(line 30)
-* $ (dollar sign), regexp operator: Regexp Operators. (line 35)
+* $ (dollar sign), regexp operator: Regexp Operator Details.
+ (line 31)
* % (percent sign), % operator: Precedence. (line 54)
* % (percent sign), %= operator: Assignment Ops. (line 129)
* % (percent sign), %= operator <1>: Precedence. (line 94)
@@ -33575,11 +33600,12 @@ Index
* ' (single quote), vs. apostrophe: Comments. (line 27)
* ' (single quote), with double quotes: Quoting. (line 73)
* () (parentheses), in a profile: Profiling. (line 146)
-* () (parentheses), regexp operator: Regexp Operators. (line 81)
+* () (parentheses), regexp operator: Regexp Operator Details.
+ (line 77)
* * (asterisk), * operator, as multiplication operator: Precedence.
(line 54)
-* * (asterisk), * operator, as regexp operator: Regexp Operators.
- (line 89)
+* * (asterisk), * operator, as regexp operator: Regexp Operator Details.
+ (line 85)
* * (asterisk), * operator, null strings, matching: String Functions.
(line 542)
* * (asterisk), ** operator: Arithmetic Ops. (line 81)
@@ -33595,7 +33621,8 @@ Index
* + (plus sign), ++ operator <2>: Precedence. (line 45)
* + (plus sign), += operator: Assignment Ops. (line 81)
* + (plus sign), += operator <1>: Precedence. (line 94)
-* + (plus sign), regexp operator: Regexp Operators. (line 105)
+* + (plus sign), regexp operator: Regexp Operator Details.
+ (line 101)
* , (comma), in range patterns: Ranges. (line 6)
* - (hyphen), - operator: Precedence. (line 51)
* - (hyphen), - operator <1>: Precedence. (line 57)
@@ -33693,7 +33720,8 @@ Index
* -V option: Options. (line 329)
* -v option <1>: Assignment Options. (line 12)
* -W option: Options. (line 51)
-* . (period), regexp operator: Regexp Operators. (line 44)
+* . (period), regexp operator: Regexp Operator Details.
+ (line 40)
* .gmo files: Explaining gettext. (line 42)
* .gmo files, specifying directory of: Explaining gettext. (line 54)
* .gmo files, specifying directory of <1>: Programmer i18n. (line 48)
@@ -33746,7 +33774,8 @@ Index
* > (right angle bracket), >> operator (I/O): Redirection. (line 50)
* > (right angle bracket), >> operator (I/O) <1>: Precedence. (line 64)
* ? (question mark), ?: operator: Precedence. (line 91)
-* ? (question mark), regexp operator: Regexp Operators. (line 111)
+* ? (question mark), regexp operator: Regexp Operator Details.
+ (line 107)
* ? (question mark), regexp operator <1>: GNU Regexp Operators.
(line 62)
* @-notation for indirect function calls: Indirect Calls. (line 47)
@@ -33757,7 +33786,8 @@ Index
(line 6)
* @namespace, no effect on BEGIN, BEGINFILE, END, and ENDFILE: Changing The Namespace.
(line 37)
-* [] (square brackets), regexp operator: Regexp Operators. (line 56)
+* [] (square brackets), regexp operator: Regexp Operator Details.
+ (line 52)
* \ (backslash): Comments. (line 50)
* \ (backslash), as field separator: Command Line Field Separator.
(line 24)
@@ -33775,7 +33805,8 @@ Index
(line 108)
* \ (backslash), in regexp constants: Computed Regexps. (line 30)
* \ (backslash), in shell commands: Quoting. (line 48)
-* \ (backslash), regexp operator: Regexp Operators. (line 18)
+* \ (backslash), regexp operator: Regexp Operator Details.
+ (line 14)
* \ (backslash), \" escape sequence: Escape Sequences. (line 85)
* \ (backslash), \' operator (gawk): GNU Regexp Operators.
(line 59)
@@ -33810,7 +33841,8 @@ Index
* ^ (caret), in bracket expressions: Bracket Expressions. (line 25)
* ^ (caret), in FS: Regexp Field Splitting.
(line 59)
-* ^ (caret), regexp operator: Regexp Operators. (line 22)
+* ^ (caret), regexp operator: Regexp Operator Details.
+ (line 18)
* ^ (caret), regexp operator <1>: GNU Regexp Operators.
(line 62)
* ^ (caret), ^ operator: Precedence. (line 48)
@@ -33826,7 +33858,8 @@ Index
* {} (braces): Profiling. (line 142)
* {} (braces), actions and: Action Overview. (line 19)
* {} (braces), statements, grouping: Statements. (line 10)
-* | (vertical bar): Regexp Operators. (line 70)
+* | (vertical bar): Regexp Operator Details.
+ (line 66)
* | (vertical bar), | operator (I/O): Getline/Pipe. (line 10)
* | (vertical bar), | operator (I/O) <1>: Redirection. (line 57)
* | (vertical bar), | operator (I/O) <2>: Precedence. (line 64)
@@ -33986,8 +34019,8 @@ Index
* associative arrays: Array Intro. (line 48)
* asterisk (*), * operator, as multiplication operator: Precedence.
(line 54)
-* asterisk (*), * operator, as regexp operator: Regexp Operators.
- (line 89)
+* asterisk (*), * operator, as regexp operator: Regexp Operator Details.
+ (line 85)
* asterisk (*), * operator, null strings, matching: String Functions.
(line 542)
* asterisk (*), ** operator: Arithmetic Ops. (line 81)
@@ -34082,7 +34115,8 @@ Index
(line 108)
* backslash (\), in regexp constants: Computed Regexps. (line 30)
* backslash (\), in shell commands: Quoting. (line 48)
-* backslash (\), regexp operator: Regexp Operators. (line 18)
+* backslash (\), regexp operator: Regexp Operator Details.
+ (line 14)
* backslash (\), \" escape sequence: Escape Sequences. (line 85)
* backslash (\), \' operator (gawk): GNU Regexp Operators.
(line 59)
@@ -34178,7 +34212,8 @@ Index
* braces ({}): Profiling. (line 142)
* braces ({}), actions and: Action Overview. (line 19)
* braces ({}), statements, grouping: Statements. (line 10)
-* bracket expressions: Regexp Operators. (line 56)
+* bracket expressions: Regexp Operator Details.
+ (line 52)
* bracket expressions <1>: Bracket Expressions. (line 6)
* bracket expressions, character classes: Bracket Expressions.
(line 40)
@@ -34186,7 +34221,8 @@ Index
(line 90)
* bracket expressions, collating symbols: Bracket Expressions.
(line 97)
-* bracket expressions, complemented: Regexp Operators. (line 64)
+* bracket expressions, complemented: Regexp Operator Details.
+ (line 60)
* bracket expressions, equivalence classes: Bracket Expressions.
(line 103)
* bracket expressions, non-ASCII: Bracket Expressions. (line 90)
@@ -34256,7 +34292,8 @@ Index
* call stack (debugger): Debugging Terms. (line 10)
* call stack, display in debugger: Execution Stack. (line 13)
* caret (^), in bracket expressions: Bracket Expressions. (line 25)
-* caret (^), regexp operator: Regexp Operators. (line 22)
+* caret (^), regexp operator: Regexp Operator Details.
+ (line 18)
* caret (^), regexp operator <1>: GNU Regexp Operators.
(line 62)
* caret (^), ^ operator: Precedence. (line 48)
@@ -34271,16 +34308,17 @@ Index
* case sensitivity, regexps and <1>: User-modified. (line 79)
* case sensitivity, string comparisons and: User-modified. (line 79)
* CGI, awk scripts for: Options. (line 147)
-* character classes, See bracket expressions: Regexp Operators.
- (line 56)
+* character classes, See bracket expressions: Regexp Operator Details.
+ (line 52)
* character lists in regular expressions: Bracket Expressions.
(line 6)
-* character lists, See bracket expressions: Regexp Operators. (line 56)
+* character lists, See bracket expressions: Regexp Operator Details.
+ (line 52)
* character sets (machine character encodings): Ordinal Functions.
(line 45)
* character sets (machine character encodings) <1>: Glossary. (line 194)
-* character sets, See Also bracket expressions: Regexp Operators.
- (line 56)
+* character sets, See Also bracket expressions: Regexp Operator Details.
+ (line 52)
* characters, counting: Wc Program. (line 6)
* characters, transliterating: Translate Program. (line 6)
* characters, values of as numbers: Ordinal Functions. (line 6)
@@ -34773,7 +34811,8 @@ Index
* dollar sign ($), $ field operator <1>: Precedence. (line 42)
* dollar sign ($), incrementing fields and arrays: Increment Ops.
(line 30)
-* dollar sign ($), regexp operator: Regexp Operators. (line 35)
+* dollar sign ($), regexp operator: Regexp Operator Details.
+ (line 31)
* double quote ("), in regexp constants: Computed Regexps. (line 30)
* double quote ("), in shell commands: Quoting. (line 54)
* double-precision: Computer Arithmetic. (line 61)
@@ -35242,7 +35281,8 @@ Index
(line 13)
* gawk, interpreter, adding code to: Using Internal File Ops.
(line 6)
-* gawk, interval expressions and: Regexp Operators. (line 139)
+* gawk, interval expressions and: Interval Expressions.
+ (line 10)
* gawk, line continuation in: Conditional Exp. (line 34)
* gawk, LINT variable in: User-modified. (line 90)
* gawk, list of contributors to: Contributors. (line 6)
@@ -35259,7 +35299,8 @@ Index
(line 26)
* gawk, regular expressions, operators: GNU Regexp Operators.
(line 6)
-* gawk, regular expressions, precedence: Regexp Operators. (line 161)
+* gawk, regular expressions, precedence: Regexp Operator Details.
+ (line 136)
* gawk, RT variable in: awk split records. (line 131)
* gawk, RT variable in <1>: gawk split records. (line 58)
* gawk, RT variable in <2>: Multiple Line. (line 130)
@@ -35502,7 +35543,8 @@ Index
* internationalizing a program: Explaining gettext. (line 6)
* interpreted programs: Basic High Level. (line 13)
* interpreted programs <1>: Glossary. (line 443)
-* interval expressions, regexp operator: Regexp Operators. (line 116)
+* interval expressions, regexp operator: Regexp Operator Details.
+ (line 112)
* inventory-shipped file: Sample Data Files. (line 32)
* invoke shell command: I/O Functions. (line 106)
* isarray: Type Functions. (line 11)
@@ -35893,7 +35935,8 @@ Index
* Papadopoulos, Panos: Contributors. (line 131)
* parent process ID of gawk process: Auto-set. (line 251)
* parentheses (), in a profile: Profiling. (line 146)
-* parentheses (), regexp operator: Regexp Operators. (line 81)
+* parentheses (), regexp operator: Regexp Operator Details.
+ (line 77)
* password file: Passwd Functions. (line 16)
* patsplit: String Functions. (line 297)
* patterns: Patterns and Actions.
@@ -35917,7 +35960,8 @@ Index
* percent sign (%), % operator: Precedence. (line 54)
* percent sign (%), %= operator: Assignment Ops. (line 129)
* percent sign (%), %= operator <1>: Precedence. (line 94)
-* period (.), regexp operator: Regexp Operators. (line 44)
+* period (.), regexp operator: Regexp Operator Details.
+ (line 40)
* Perl: Future Extensions. (line 6)
* Peters, Arno: Contributors. (line 88)
* Peterson, Hal: Contributors. (line 40)
@@ -35937,7 +35981,8 @@ Index
* plus sign (+), ++ operator <2>: Precedence. (line 45)
* plus sign (+), += operator: Assignment Ops. (line 81)
* plus sign (+), += operator <1>: Precedence. (line 94)
-* plus sign (+), regexp operator: Regexp Operators. (line 105)
+* plus sign (+), regexp operator: Regexp Operator Details.
+ (line 101)
* pointers to functions: Indirect Calls. (line 6)
* portability: Escape Sequences. (line 103)
* portability, #! (executable scripts): Executable Scripts. (line 33)
@@ -36002,14 +36047,17 @@ Index
* POSIX awk, functions and, gsub()/sub(): Gory Details. (line 90)
* POSIX awk, functions and, length(): String Functions. (line 180)
* POSIX awk, GNU long options and: Options. (line 15)
-* POSIX awk, interval expressions in: Regexp Operators. (line 135)
+* POSIX awk, interval expressions in: Interval Expressions.
+ (line 6)
* POSIX awk, next/nextfile statements and: Next Statement. (line 44)
* POSIX awk, numeric strings and: Variable Typing. (line 67)
* POSIX awk, OFMT variable and: OFMT. (line 27)
* POSIX awk, OFMT variable and <1>: Strings And Numbers. (line 56)
-* POSIX awk, period (.), using: Regexp Operators. (line 51)
+* POSIX awk, period (.), using: Regexp Operator Details.
+ (line 47)
* POSIX awk, printf format strings and: Format Modifiers. (line 157)
-* POSIX awk, regular expressions and: Regexp Operators. (line 161)
+* POSIX awk, regular expressions and: Regexp Operator Details.
+ (line 136)
* POSIX awk, timestamps and: Time Functions. (line 6)
* POSIX awk, | I/O operator and: Getline/Pipe. (line 56)
* POSIX mode: Options. (line 282)
@@ -36021,7 +36069,8 @@ Index
* PREC variable: User-modified. (line 127)
* precedence: Increment Ops. (line 60)
* precedence <1>: Precedence. (line 6)
-* precedence, regexp operators: Regexp Operators. (line 156)
+* precedence, regexp operators: Regexp Operator Details.
+ (line 131)
* predefined variables: Built-in Variables. (line 6)
* predefined variables, -v option, setting with: Options. (line 45)
* predefined variables, conveying information: Auto-set. (line 6)
@@ -36121,7 +36170,8 @@ Index
* qualified name, use of: Qualified Names. (line 17)
* Quanstrom, Erik: Alarm Program. (line 8)
* question mark (?), ?: operator: Precedence. (line 91)
-* question mark (?), regexp operator: Regexp Operators. (line 111)
+* question mark (?), regexp operator: Regexp Operator Details.
+ (line 107)
* question mark (?), regexp operator <1>: GNU Regexp Operators.
(line 62)
* QuikTrim Awk: Other Versions. (line 143)
@@ -36195,7 +36245,8 @@ Index
* register extension: Registration Functions.
(line 6)
* regular expressions: Regexp. (line 6)
-* regular expressions, anchors in: Regexp Operators. (line 22)
+* regular expressions, anchors in: Regexp Operator Details.
+ (line 18)
* regular expressions, as field separators: Field Separators. (line 50)
* regular expressions, as field separators <1>: Regexp Field Splitting.
(line 6)
@@ -36224,8 +36275,8 @@ Index
(line 6)
* regular expressions, operators, gawk: GNU Regexp Operators.
(line 6)
-* regular expressions, operators, precedence of: Regexp Operators.
- (line 156)
+* regular expressions, operators, precedence of: Regexp Operator Details.
+ (line 131)
* regular expressions, searching for: Egrep Program. (line 6)
* relational operators, See comparison operators: Typing and Comparison.
(line 9)
@@ -36485,7 +36536,8 @@ Index
* sprintf() function, print/printf statements and: Round Function.
(line 6)
* sqrt: Numeric Functions. (line 78)
-* square brackets ([]), regexp operator: Regexp Operators. (line 56)
+* square brackets ([]), regexp operator: Regexp Operator Details.
+ (line 52)
* square root: Numeric Functions. (line 78)
* srand: Numeric Functions. (line 82)
* stack frame (debugger): Debugging Terms. (line 10)
@@ -36586,7 +36638,8 @@ Index
* Texinfo <4>: Distribution contents.
(line 83)
* Texinfo <5>: Adding Code. (line 100)
-* Texinfo, chapter beginnings in files: Regexp Operators. (line 22)
+* Texinfo, chapter beginnings in files: Regexp Operator Details.
+ (line 18)
* Texinfo, extracting programs from source files: Extract Program.
(line 6)
* text, printing: Print. (line 22)
@@ -36750,7 +36803,8 @@ Index
* version of gawk extension API: Auto-set. (line 287)
* version of GNU MP library: Auto-set. (line 270)
* version of GNU MPFR library: Auto-set. (line 272)
-* vertical bar (|): Regexp Operators. (line 70)
+* vertical bar (|): Regexp Operator Details.
+ (line 66)
* vertical bar (|), | operator (I/O): Getline/Pipe. (line 10)
* vertical bar (|), | operator (I/O) <1>: Precedence. (line 64)
* vertical bar (|), |& operator (I/O): Getline/Coprocess. (line 6)
@@ -36875,536 +36929,538 @@ Node: Regexp159037
Node: Regexp Usage160491
Node: Escape Sequences162528
Node: Regexp Operators168760
-Ref: Regexp Operators-Footnote-1176176
-Ref: Regexp Operators-Footnote-2176323
-Node: Bracket Expressions176421
-Ref: table-char-classes178897
-Node: Leftmost Longest182223
-Node: Computed Regexps183526
-Node: GNU Regexp Operators186953
-Node: Case-sensitivity190632
-Ref: Case-sensitivity-Footnote-1193519
-Ref: Case-sensitivity-Footnote-2193754
-Node: Regexp Summary193862
-Node: Reading Files195328
-Node: Records197597
-Node: awk split records198672
-Node: gawk split records203947
-Ref: gawk split records-Footnote-1208533
-Node: Fields208570
-Node: Nonconstant Fields211311
-Ref: Nonconstant Fields-Footnote-1213547
-Node: Changing Fields213751
-Node: Field Separators219782
-Node: Default Field Splitting222480
-Node: Regexp Field Splitting223598
-Node: Single Character Fields226951
-Node: Command Line Field Separator228011
-Node: Full Line Fields231229
-Ref: Full Line Fields-Footnote-1232751
-Ref: Full Line Fields-Footnote-2232797
-Node: Field Splitting Summary232898
-Node: Constant Size234972
-Node: Fixed width data235704
-Node: Skipping intervening239171
-Node: Allowing trailing data239969
-Node: Fields with fixed data241006
-Node: Splitting By Content242524
-Ref: Splitting By Content-Footnote-1246174
-Node: Testing field creation246337
-Node: Multiple Line247962
-Ref: Multiple Line-Footnote-1253846
-Node: Getline254025
-Node: Plain Getline256494
-Node: Getline/Variable259135
-Node: Getline/File260286
-Node: Getline/Variable/File261674
-Ref: Getline/Variable/File-Footnote-1263279
-Node: Getline/Pipe263367
-Node: Getline/Variable/Pipe266074
-Node: Getline/Coprocess267209
-Node: Getline/Variable/Coprocess268476
-Node: Getline Notes269218
-Node: Getline Summary272015
-Ref: table-getline-variants272439
-Node: Read Timeout273187
-Ref: Read Timeout-Footnote-1277093
-Node: Retrying Input277151
-Node: Command-line directories278350
-Node: Input Summary279256
-Node: Input Exercises282428
-Node: Printing283156
-Node: Print284990
-Node: Print Examples286447
-Node: Output Separators289227
-Node: OFMT291244
-Node: Printf292600
-Node: Basic Printf293385
-Node: Control Letters294959
-Node: Format Modifiers300123
-Node: Printf Examples306138
-Node: Redirection308624
-Node: Special FD315465
-Ref: Special FD-Footnote-1318633
-Node: Special Files318707
-Node: Other Inherited Files319324
-Node: Special Network320325
-Node: Special Caveats321185
-Node: Close Files And Pipes322134
-Ref: table-close-pipe-return-values329041
-Ref: Close Files And Pipes-Footnote-1329854
-Ref: Close Files And Pipes-Footnote-2330002
-Node: Nonfatal330154
-Node: Output Summary332492
-Node: Output Exercises333714
-Node: Expressions334393
-Node: Values335581
-Node: Constants336259
-Node: Scalar Constants336950
-Ref: Scalar Constants-Footnote-1339474
-Node: Nondecimal-numbers339724
-Node: Regexp Constants342725
-Node: Using Constant Regexps343251
-Node: Standard Regexp Constants343873
-Node: Strong Regexp Constants347061
-Node: Variables350019
-Node: Using Variables350676
-Node: Assignment Options352586
-Node: Conversion355053
-Node: Strings And Numbers355577
-Ref: Strings And Numbers-Footnote-1358640
-Node: Locale influences conversions358749
-Ref: table-locale-affects361507
-Node: All Operators362125
-Node: Arithmetic Ops362754
-Node: Concatenation365260
-Ref: Concatenation-Footnote-1368107
-Node: Assignment Ops368214
-Ref: table-assign-ops373205
-Node: Increment Ops374518
-Node: Truth Values and Conditions377978
-Node: Truth Values379052
-Node: Typing and Comparison380100
-Node: Variable Typing380920
-Ref: Variable Typing-Footnote-1387383
-Ref: Variable Typing-Footnote-2387455
-Node: Comparison Operators387532
-Ref: table-relational-ops387951
-Node: POSIX String Comparison391446
-Ref: POSIX String Comparison-Footnote-1393141
-Ref: POSIX String Comparison-Footnote-2393280
-Node: Boolean Ops393364
-Ref: Boolean Ops-Footnote-1397846
-Node: Conditional Exp397938
-Node: Function Calls399674
-Node: Precedence403551
-Node: Locales407210
-Node: Expressions Summary408842
-Node: Patterns and Actions411415
-Node: Pattern Overview412535
-Node: Regexp Patterns414212
-Node: Expression Patterns414754
-Node: Ranges418535
-Node: BEGIN/END421643
-Node: Using BEGIN/END422404
-Ref: Using BEGIN/END-Footnote-1425140
-Node: I/O And BEGIN/END425246
-Node: BEGINFILE/ENDFILE427560
-Node: Empty430473
-Node: Using Shell Variables430790
-Node: Action Overview433064
-Node: Statements435389
-Node: If Statement437237
-Node: While Statement438732
-Node: Do Statement440760
-Node: For Statement441908
-Node: Switch Statement445079
-Node: Break Statement447465
-Node: Continue Statement449557
-Node: Next Statement451384
-Node: Nextfile Statement453767
-Node: Exit Statement456419
-Node: Built-in Variables458822
-Node: User-modified459955
-Node: Auto-set467722
-Ref: Auto-set-Footnote-1484529
-Ref: Auto-set-Footnote-2484735
-Node: ARGC and ARGV484791
-Node: Pattern Action Summary489004
-Node: Arrays491434
-Node: Array Basics492763
-Node: Array Intro493607
-Ref: figure-array-elements495582
-Ref: Array Intro-Footnote-1498286
-Node: Reference to Elements498414
-Node: Assigning Elements500878
-Node: Array Example501369
-Node: Scanning an Array503128
-Node: Controlling Scanning506150
-Ref: Controlling Scanning-Footnote-1511549
-Node: Numeric Array Subscripts511865
-Node: Uninitialized Subscripts514049
-Node: Delete515668
-Ref: Delete-Footnote-1518420
-Node: Multidimensional518477
-Node: Multiscanning521572
-Node: Arrays of Arrays523163
-Node: Arrays Summary527931
-Node: Functions530024
-Node: Built-in531062
-Node: Calling Built-in532143
-Node: Numeric Functions534139
-Ref: Numeric Functions-Footnote-1538167
-Ref: Numeric Functions-Footnote-2538812
-Ref: Numeric Functions-Footnote-3538860
-Node: String Functions539132
-Ref: String Functions-Footnote-1562990
-Ref: String Functions-Footnote-2563118
-Ref: String Functions-Footnote-3563366
-Node: Gory Details563453
-Ref: table-sub-escapes565244
-Ref: table-sub-proposed566763
-Ref: table-posix-sub568126
-Ref: table-gensub-escapes569667
-Ref: Gory Details-Footnote-1570490
-Node: I/O Functions570644
-Ref: table-system-return-values577112
-Ref: I/O Functions-Footnote-1579192
-Ref: I/O Functions-Footnote-2579340
-Node: Time Functions579460
-Ref: Time Functions-Footnote-1590131
-Ref: Time Functions-Footnote-2590199
-Ref: Time Functions-Footnote-3590357
-Ref: Time Functions-Footnote-4590468
-Ref: Time Functions-Footnote-5590580
-Ref: Time Functions-Footnote-6590807
-Node: Bitwise Functions591073
-Ref: table-bitwise-ops591667
-Ref: Bitwise Functions-Footnote-1597730
-Ref: Bitwise Functions-Footnote-2597903
-Node: Type Functions598094
-Node: I18N Functions600845
-Node: User-defined602496
-Node: Definition Syntax603308
-Ref: Definition Syntax-Footnote-1608995
-Node: Function Example609066
-Ref: Function Example-Footnote-1611988
-Node: Function Calling612010
-Node: Calling A Function612598
-Node: Variable Scope613556
-Node: Pass By Value/Reference616550
-Node: Function Caveats619194
-Ref: Function Caveats-Footnote-1621241
-Node: Return Statement621361
-Node: Dynamic Typing624340
-Node: Indirect Calls625270
-Ref: Indirect Calls-Footnote-1635522
-Node: Functions Summary635650
-Node: Library Functions638355
-Ref: Library Functions-Footnote-1641962
-Ref: Library Functions-Footnote-2642105
-Node: Library Names642276
-Ref: Library Names-Footnote-1645943
-Ref: Library Names-Footnote-2646166
-Node: General Functions646252
-Node: Strtonum Function647355
-Node: Assert Function650377
-Node: Round Function653703
-Node: Cliff Random Function655243
-Node: Ordinal Functions656259
-Ref: Ordinal Functions-Footnote-1659322
-Ref: Ordinal Functions-Footnote-2659574
-Node: Join Function659784
-Ref: Join Function-Footnote-1661554
-Node: Getlocaltime Function661754
-Node: Readfile Function665496
-Node: Shell Quoting667473
-Node: Data File Management668874
-Node: Filetrans Function669506
-Node: Rewind Function673602
-Node: File Checking675511
-Ref: File Checking-Footnote-1676845
-Node: Empty Files677046
-Node: Ignoring Assigns679025
-Node: Getopt Function680575
-Ref: Getopt Function-Footnote-1692044
-Node: Passwd Functions692244
-Ref: Passwd Functions-Footnote-1701083
-Node: Group Functions701171
-Ref: Group Functions-Footnote-1709069
-Node: Walking Arrays709276
-Node: Library Functions Summary712284
-Node: Library Exercises713690
-Node: Sample Programs714155
-Node: Running Examples714925
-Node: Clones715653
-Node: Cut Program716877
-Node: Egrep Program726806
-Ref: Egrep Program-Footnote-1734318
-Node: Id Program734428
-Node: Split Program738108
-Ref: Split Program-Footnote-1741566
-Node: Tee Program741695
-Node: Uniq Program744485
-Node: Wc Program752106
-Ref: Wc Program-Footnote-1756361
-Node: Miscellaneous Programs756455
-Node: Dupword Program757668
-Node: Alarm Program759698
-Node: Translate Program764553
-Ref: Translate Program-Footnote-1769118
-Node: Labels Program769388
-Ref: Labels Program-Footnote-1772739
-Node: Word Sorting772823
-Node: History Sorting776895
-Node: Extract Program778730
-Node: Simple Sed786784
-Node: Igawk Program789858
-Ref: Igawk Program-Footnote-1804189
-Ref: Igawk Program-Footnote-2804391
-Ref: Igawk Program-Footnote-3804513
-Node: Anagram Program804628
-Node: Signature Program807690
-Node: Programs Summary808937
-Node: Programs Exercises810151
-Ref: Programs Exercises-Footnote-1814280
-Node: Advanced Features814371
-Node: Nondecimal Data816361
-Node: Array Sorting817952
-Node: Controlling Array Traversal818652
-Ref: Controlling Array Traversal-Footnote-1827020
-Node: Array Sorting Functions827138
-Ref: Array Sorting Functions-Footnote-1832229
-Node: Two-way I/O832425
-Ref: Two-way I/O-Footnote-1840146
-Ref: Two-way I/O-Footnote-2840333
-Node: TCP/IP Networking840415
-Node: Profiling843533
-Node: Advanced Features Summary852551
-Node: Internationalization854395
-Node: I18N and L10N855875
-Node: Explaining gettext856562
-Ref: Explaining gettext-Footnote-1862454
-Ref: Explaining gettext-Footnote-2862639
-Node: Programmer i18n862804
-Ref: Programmer i18n-Footnote-1867753
-Node: Translator i18n867802
-Node: String Extraction868596
-Ref: String Extraction-Footnote-1869728
-Node: Printf Ordering869814
-Ref: Printf Ordering-Footnote-1872600
-Node: I18N Portability872664
-Ref: I18N Portability-Footnote-1875120
-Node: I18N Example875183
-Ref: I18N Example-Footnote-1878458
-Ref: I18N Example-Footnote-2878531
-Node: Gawk I18N878640
-Node: I18N Summary879285
-Node: Debugger880626
-Node: Debugging881626
-Node: Debugging Concepts882067
-Node: Debugging Terms883876
-Node: Awk Debugging886451
-Ref: Awk Debugging-Footnote-1887396
-Node: Sample Debugging Session887528
-Node: Debugger Invocation888062
-Node: Finding The Bug889448
-Node: List of Debugger Commands895922
-Node: Breakpoint Control897255
-Node: Debugger Execution Control900949
-Node: Viewing And Changing Data904311
-Node: Execution Stack907852
-Node: Debugger Info909489
-Node: Miscellaneous Debugger Commands913560
-Node: Readline Support918622
-Node: Limitations919518
-Node: Debugging Summary921627
-Node: Namespaces922906
-Node: Global Namespace923985
-Node: Qualified Names925383
-Node: Default Namespace926382
-Node: Changing The Namespace927123
-Node: Naming Rules928737
-Node: Internal Name Management930585
-Node: Namespace Example931627
-Node: Namespace And Features934189
-Node: Namespace Summary935624
-Node: Arbitrary Precision Arithmetic937101
-Node: Computer Arithmetic938588
-Ref: table-numeric-ranges942354
-Ref: table-floating-point-ranges942847
-Ref: Computer Arithmetic-Footnote-1943505
-Node: Math Definitions943562
-Ref: table-ieee-formats946878
-Ref: Math Definitions-Footnote-1947481
-Node: MPFR features947586
-Node: FP Math Caution949304
-Ref: FP Math Caution-Footnote-1950376
-Node: Inexactness of computations950745
-Node: Inexact representation951705
-Node: Comparing FP Values953065
-Node: Errors accumulate954306
-Node: Getting Accuracy955739
-Node: Try To Round958449
-Node: Setting precision959348
-Ref: table-predefined-precision-strings960045
-Node: Setting the rounding mode961875
-Ref: table-gawk-rounding-modes962249
-Ref: Setting the rounding mode-Footnote-1966180
-Node: Arbitrary Precision Integers966359
-Ref: Arbitrary Precision Integers-Footnote-1969534
-Node: Checking for MPFR969683
-Node: POSIX Floating Point Problems971157
-Ref: POSIX Floating Point Problems-Footnote-1975442
-Node: Floating point summary975480
-Node: Dynamic Extensions977670
-Node: Extension Intro979223
-Node: Plugin License980489
-Node: Extension Mechanism Outline981286
-Ref: figure-load-extension981725
-Ref: figure-register-new-function983290
-Ref: figure-call-new-function984382
-Node: Extension API Description986444
-Node: Extension API Functions Introduction988086
-Ref: table-api-std-headers989922
-Node: General Data Types993787
-Ref: General Data Types-Footnote-11002148
-Node: Memory Allocation Functions1002447
-Ref: Memory Allocation Functions-Footnote-11006657
-Node: Constructor Functions1006756
-Node: Registration Functions1010342
-Node: Extension Functions1011027
-Node: Exit Callback Functions1016349
-Node: Extension Version String1017599
-Node: Input Parsers1018262
-Node: Output Wrappers1030983
-Node: Two-way processors1035495
-Node: Printing Messages1037760
-Ref: Printing Messages-Footnote-11038931
-Node: Updating ERRNO1039084
-Node: Requesting Values1039823
-Ref: table-value-types-returned1040560
-Node: Accessing Parameters1041496
-Node: Symbol Table Access1042731
-Node: Symbol table by name1043243
-Ref: Symbol table by name-Footnote-11046267
-Node: Symbol table by cookie1046395
-Ref: Symbol table by cookie-Footnote-11050580
-Node: Cached values1050644
-Ref: Cached values-Footnote-11054180
-Node: Array Manipulation1054333
-Ref: Array Manipulation-Footnote-11055424
-Node: Array Data Types1055461
-Ref: Array Data Types-Footnote-11058119
-Node: Array Functions1058211
-Node: Flattening Arrays1062709
-Node: Creating Arrays1069685
-Node: Redirection API1074452
-Node: Extension API Variables1077285
-Node: Extension Versioning1077996
-Ref: gawk-api-version1078425
-Node: Extension GMP/MPFR Versioning1080156
-Node: Extension API Informational Variables1081784
-Node: Extension API Boilerplate1082857
-Node: Changes from API V11086831
-Node: Finding Extensions1088403
-Node: Extension Example1088962
-Node: Internal File Description1089760
-Node: Internal File Ops1093840
-Ref: Internal File Ops-Footnote-11105190
-Node: Using Internal File Ops1105330
-Ref: Using Internal File Ops-Footnote-11107713
-Node: Extension Samples1107987
-Node: Extension Sample File Functions1109516
-Node: Extension Sample Fnmatch1117165
-Node: Extension Sample Fork1118652
-Node: Extension Sample Inplace1119870
-Node: Extension Sample Ord1123174
-Node: Extension Sample Readdir1124010
-Ref: table-readdir-file-types1124899
-Node: Extension Sample Revout1125704
-Node: Extension Sample Rev2way1126293
-Node: Extension Sample Read write array1127033
-Node: Extension Sample Readfile1128975
-Node: Extension Sample Time1130070
-Node: Extension Sample API Tests1131418
-Node: gawkextlib1131910
-Node: Extension summary1134828
-Node: Extension Exercises1138530
-Node: Language History1139772
-Node: V7/SVR3.11141428
-Node: SVR41143580
-Node: POSIX1145014
-Node: BTL1146394
-Node: POSIX/GNU1147123
-Node: Feature History1152901
-Node: Common Extensions1168947
-Node: Ranges and Locales1170230
-Ref: Ranges and Locales-Footnote-11174846
-Ref: Ranges and Locales-Footnote-21174873
-Ref: Ranges and Locales-Footnote-31175108
-Node: Contributors1175329
-Node: History summary1181274
-Node: Installation1182654
-Node: Gawk Distribution1183598
-Node: Getting1184082
-Node: Extracting1185045
-Node: Distribution contents1186683
-Node: Unix Installation1193163
-Node: Quick Installation1193845
-Node: Shell Startup Files1196259
-Node: Additional Configuration Options1197348
-Node: Configuration Philosophy1199513
-Node: Non-Unix Installation1201882
-Node: PC Installation1202342
-Node: PC Binary Installation1203180
-Node: PC Compiling1203615
-Node: PC Using1204732
-Node: Cygwin1208285
-Node: MSYS1209384
-Node: VMS Installation1209885
-Node: VMS Compilation1210676
-Ref: VMS Compilation-Footnote-11211905
-Node: VMS Dynamic Extensions1211963
-Node: VMS Installation Details1213648
-Node: VMS Running1215901
-Node: VMS GNV1220180
-Node: VMS Old Gawk1220915
-Node: Bugs1221386
-Node: Bug address1222049
-Node: Usenet1225031
-Node: Maintainers1226035
-Node: Other Versions1227296
-Node: Installation summary1234210
-Node: Notes1235412
-Node: Compatibility Mode1236206
-Node: Additions1236988
-Node: Accessing The Source1237913
-Node: Adding Code1239350
-Node: New Ports1245569
-Node: Derived Files1250057
-Ref: Derived Files-Footnote-11255703
-Ref: Derived Files-Footnote-21255738
-Ref: Derived Files-Footnote-31256336
-Node: Future Extensions1256450
-Node: Implementation Limitations1257108
-Node: Extension Design1258291
-Node: Old Extension Problems1259435
-Ref: Old Extension Problems-Footnote-11260953
-Node: Extension New Mechanism Goals1261010
-Ref: Extension New Mechanism Goals-Footnote-11264374
-Node: Extension Other Design Decisions1264563
-Node: Extension Future Growth1266676
-Node: Notes summary1267512
-Node: Basic Concepts1268687
-Node: Basic High Level1269368
-Ref: figure-general-flow1269650
-Ref: figure-process-flow1270335
-Ref: Basic High Level-Footnote-11273636
-Node: Basic Data Typing1273821
-Node: Glossary1277149
-Node: Copying1308987
-Node: GNU Free Documentation License1346530
-Node: Index1371650
+Node: Regexp Operator Details169245
+Ref: Regexp Operator Details-Footnote-1175367
+Node: Interval Expressions175514
+Ref: Interval Expressions-Footnote-1176949
+Node: Bracket Expressions177047
+Ref: table-char-classes179523
+Node: Leftmost Longest182849
+Node: Computed Regexps184152
+Node: GNU Regexp Operators187579
+Node: Case-sensitivity191258
+Ref: Case-sensitivity-Footnote-1194145
+Ref: Case-sensitivity-Footnote-2194380
+Node: Regexp Summary194488
+Node: Reading Files195954
+Node: Records198223
+Node: awk split records199298
+Node: gawk split records204573
+Ref: gawk split records-Footnote-1209159
+Node: Fields209196
+Node: Nonconstant Fields211937
+Ref: Nonconstant Fields-Footnote-1214173
+Node: Changing Fields214377
+Node: Field Separators220408
+Node: Default Field Splitting223106
+Node: Regexp Field Splitting224224
+Node: Single Character Fields227577
+Node: Command Line Field Separator228637
+Node: Full Line Fields231855
+Ref: Full Line Fields-Footnote-1233377
+Ref: Full Line Fields-Footnote-2233423
+Node: Field Splitting Summary233524
+Node: Constant Size235598
+Node: Fixed width data236330
+Node: Skipping intervening239797
+Node: Allowing trailing data240595
+Node: Fields with fixed data241632
+Node: Splitting By Content243150
+Ref: Splitting By Content-Footnote-1246800
+Node: Testing field creation246963
+Node: Multiple Line248588
+Ref: Multiple Line-Footnote-1254472
+Node: Getline254651
+Node: Plain Getline257120
+Node: Getline/Variable259761
+Node: Getline/File260912
+Node: Getline/Variable/File262300
+Ref: Getline/Variable/File-Footnote-1263905
+Node: Getline/Pipe263993
+Node: Getline/Variable/Pipe266700
+Node: Getline/Coprocess267835
+Node: Getline/Variable/Coprocess269102
+Node: Getline Notes269844
+Node: Getline Summary272641
+Ref: table-getline-variants273065
+Node: Read Timeout273813
+Ref: Read Timeout-Footnote-1277719
+Node: Retrying Input277777
+Node: Command-line directories278976
+Node: Input Summary279882
+Node: Input Exercises283054
+Node: Printing283782
+Node: Print285616
+Node: Print Examples287073
+Node: Output Separators289853
+Node: OFMT291870
+Node: Printf293226
+Node: Basic Printf294011
+Node: Control Letters295585
+Node: Format Modifiers300749
+Node: Printf Examples306764
+Node: Redirection309250
+Node: Special FD316091
+Ref: Special FD-Footnote-1319259
+Node: Special Files319333
+Node: Other Inherited Files319950
+Node: Special Network320951
+Node: Special Caveats321811
+Node: Close Files And Pipes322760
+Ref: table-close-pipe-return-values329667
+Ref: Close Files And Pipes-Footnote-1330480
+Ref: Close Files And Pipes-Footnote-2330628
+Node: Nonfatal330780
+Node: Output Summary333118
+Node: Output Exercises334340
+Node: Expressions335019
+Node: Values336207
+Node: Constants336885
+Node: Scalar Constants337576
+Ref: Scalar Constants-Footnote-1340100
+Node: Nondecimal-numbers340350
+Node: Regexp Constants343351
+Node: Using Constant Regexps343877
+Node: Standard Regexp Constants344499
+Node: Strong Regexp Constants347687
+Node: Variables350645
+Node: Using Variables351302
+Node: Assignment Options353212
+Node: Conversion355679
+Node: Strings And Numbers356203
+Ref: Strings And Numbers-Footnote-1359266
+Node: Locale influences conversions359375
+Ref: table-locale-affects362133
+Node: All Operators362751
+Node: Arithmetic Ops363380
+Node: Concatenation365886
+Ref: Concatenation-Footnote-1368733
+Node: Assignment Ops368840
+Ref: table-assign-ops373831
+Node: Increment Ops375144
+Node: Truth Values and Conditions378604
+Node: Truth Values379678
+Node: Typing and Comparison380726
+Node: Variable Typing381546
+Ref: Variable Typing-Footnote-1388009
+Ref: Variable Typing-Footnote-2388081
+Node: Comparison Operators388158
+Ref: table-relational-ops388577
+Node: POSIX String Comparison392072
+Ref: POSIX String Comparison-Footnote-1393767
+Ref: POSIX String Comparison-Footnote-2393906
+Node: Boolean Ops393990
+Ref: Boolean Ops-Footnote-1398472
+Node: Conditional Exp398564
+Node: Function Calls400300
+Node: Precedence404177
+Node: Locales407836
+Node: Expressions Summary409468
+Node: Patterns and Actions412041
+Node: Pattern Overview413161
+Node: Regexp Patterns414838
+Node: Expression Patterns415380
+Node: Ranges419161
+Node: BEGIN/END422269
+Node: Using BEGIN/END423030
+Ref: Using BEGIN/END-Footnote-1425766
+Node: I/O And BEGIN/END425872
+Node: BEGINFILE/ENDFILE428186
+Node: Empty431099
+Node: Using Shell Variables431416
+Node: Action Overview433690
+Node: Statements436015
+Node: If Statement437863
+Node: While Statement439358
+Node: Do Statement441386
+Node: For Statement442534
+Node: Switch Statement445705
+Node: Break Statement448091
+Node: Continue Statement450183
+Node: Next Statement452010
+Node: Nextfile Statement454393
+Node: Exit Statement457045
+Node: Built-in Variables459448
+Node: User-modified460581
+Node: Auto-set468348
+Ref: Auto-set-Footnote-1485155
+Ref: Auto-set-Footnote-2485361
+Node: ARGC and ARGV485417
+Node: Pattern Action Summary489630
+Node: Arrays492060
+Node: Array Basics493389
+Node: Array Intro494233
+Ref: figure-array-elements496208
+Ref: Array Intro-Footnote-1498912
+Node: Reference to Elements499040
+Node: Assigning Elements501504
+Node: Array Example501995
+Node: Scanning an Array503754
+Node: Controlling Scanning506776
+Ref: Controlling Scanning-Footnote-1512175
+Node: Numeric Array Subscripts512491
+Node: Uninitialized Subscripts514675
+Node: Delete516294
+Ref: Delete-Footnote-1519046
+Node: Multidimensional519103
+Node: Multiscanning522198
+Node: Arrays of Arrays523789
+Node: Arrays Summary528557
+Node: Functions530650
+Node: Built-in531688
+Node: Calling Built-in532769
+Node: Numeric Functions534765
+Ref: Numeric Functions-Footnote-1538793
+Ref: Numeric Functions-Footnote-2539438
+Ref: Numeric Functions-Footnote-3539486
+Node: String Functions539758
+Ref: String Functions-Footnote-1563616
+Ref: String Functions-Footnote-2563744
+Ref: String Functions-Footnote-3563992
+Node: Gory Details564079
+Ref: table-sub-escapes565870
+Ref: table-sub-proposed567389
+Ref: table-posix-sub568752
+Ref: table-gensub-escapes570293
+Ref: Gory Details-Footnote-1571116
+Node: I/O Functions571270
+Ref: table-system-return-values577738
+Ref: I/O Functions-Footnote-1579818
+Ref: I/O Functions-Footnote-2579966
+Node: Time Functions580086
+Ref: Time Functions-Footnote-1590757
+Ref: Time Functions-Footnote-2590825
+Ref: Time Functions-Footnote-3590983
+Ref: Time Functions-Footnote-4591094
+Ref: Time Functions-Footnote-5591206
+Ref: Time Functions-Footnote-6591433
+Node: Bitwise Functions591699
+Ref: table-bitwise-ops592293
+Ref: Bitwise Functions-Footnote-1598356
+Ref: Bitwise Functions-Footnote-2598529
+Node: Type Functions598720
+Node: I18N Functions601471
+Node: User-defined603122
+Node: Definition Syntax603934
+Ref: Definition Syntax-Footnote-1609621
+Node: Function Example609692
+Ref: Function Example-Footnote-1612614
+Node: Function Calling612636
+Node: Calling A Function613224
+Node: Variable Scope614182
+Node: Pass By Value/Reference617176
+Node: Function Caveats619820
+Ref: Function Caveats-Footnote-1621867
+Node: Return Statement621987
+Node: Dynamic Typing624966
+Node: Indirect Calls625896
+Ref: Indirect Calls-Footnote-1636148
+Node: Functions Summary636276
+Node: Library Functions638981
+Ref: Library Functions-Footnote-1642588
+Ref: Library Functions-Footnote-2642731
+Node: Library Names642902
+Ref: Library Names-Footnote-1646569
+Ref: Library Names-Footnote-2646792
+Node: General Functions646878
+Node: Strtonum Function647981
+Node: Assert Function651003
+Node: Round Function654329
+Node: Cliff Random Function655869
+Node: Ordinal Functions656885
+Ref: Ordinal Functions-Footnote-1659948
+Ref: Ordinal Functions-Footnote-2660200
+Node: Join Function660410
+Ref: Join Function-Footnote-1662180
+Node: Getlocaltime Function662380
+Node: Readfile Function666122
+Node: Shell Quoting668099
+Node: Data File Management669500
+Node: Filetrans Function670132
+Node: Rewind Function674228
+Node: File Checking676137
+Ref: File Checking-Footnote-1677471
+Node: Empty Files677672
+Node: Ignoring Assigns679651
+Node: Getopt Function681201
+Ref: Getopt Function-Footnote-1692670
+Node: Passwd Functions692870
+Ref: Passwd Functions-Footnote-1701709
+Node: Group Functions701797
+Ref: Group Functions-Footnote-1709695
+Node: Walking Arrays709902
+Node: Library Functions Summary712910
+Node: Library Exercises714316
+Node: Sample Programs714781
+Node: Running Examples715551
+Node: Clones716279
+Node: Cut Program717503
+Node: Egrep Program727432
+Ref: Egrep Program-Footnote-1734944
+Node: Id Program735054
+Node: Split Program738734
+Ref: Split Program-Footnote-1742192
+Node: Tee Program742321
+Node: Uniq Program745111
+Node: Wc Program752732
+Ref: Wc Program-Footnote-1756987
+Node: Miscellaneous Programs757081
+Node: Dupword Program758294
+Node: Alarm Program760324
+Node: Translate Program765179
+Ref: Translate Program-Footnote-1769744
+Node: Labels Program770014
+Ref: Labels Program-Footnote-1773365
+Node: Word Sorting773449
+Node: History Sorting777521
+Node: Extract Program779356
+Node: Simple Sed787410
+Node: Igawk Program790484
+Ref: Igawk Program-Footnote-1804815
+Ref: Igawk Program-Footnote-2805017
+Ref: Igawk Program-Footnote-3805139
+Node: Anagram Program805254
+Node: Signature Program808316
+Node: Programs Summary809563
+Node: Programs Exercises810777
+Ref: Programs Exercises-Footnote-1814906
+Node: Advanced Features814997
+Node: Nondecimal Data816987
+Node: Array Sorting818578
+Node: Controlling Array Traversal819278
+Ref: Controlling Array Traversal-Footnote-1827646
+Node: Array Sorting Functions827764
+Ref: Array Sorting Functions-Footnote-1832855
+Node: Two-way I/O833051
+Ref: Two-way I/O-Footnote-1840772
+Ref: Two-way I/O-Footnote-2840959
+Node: TCP/IP Networking841041
+Node: Profiling844159
+Node: Advanced Features Summary853177
+Node: Internationalization855021
+Node: I18N and L10N856501
+Node: Explaining gettext857188
+Ref: Explaining gettext-Footnote-1863080
+Ref: Explaining gettext-Footnote-2863265
+Node: Programmer i18n863430
+Ref: Programmer i18n-Footnote-1868379
+Node: Translator i18n868428
+Node: String Extraction869222
+Ref: String Extraction-Footnote-1870354
+Node: Printf Ordering870440
+Ref: Printf Ordering-Footnote-1873226
+Node: I18N Portability873290
+Ref: I18N Portability-Footnote-1875746
+Node: I18N Example875809
+Ref: I18N Example-Footnote-1879084
+Ref: I18N Example-Footnote-2879157
+Node: Gawk I18N879266
+Node: I18N Summary879911
+Node: Debugger881252
+Node: Debugging882252
+Node: Debugging Concepts882693
+Node: Debugging Terms884502
+Node: Awk Debugging887077
+Ref: Awk Debugging-Footnote-1888022
+Node: Sample Debugging Session888154
+Node: Debugger Invocation888688
+Node: Finding The Bug890074
+Node: List of Debugger Commands896548
+Node: Breakpoint Control897881
+Node: Debugger Execution Control901575
+Node: Viewing And Changing Data904937
+Node: Execution Stack908478
+Node: Debugger Info910115
+Node: Miscellaneous Debugger Commands914186
+Node: Readline Support919248
+Node: Limitations920144
+Node: Debugging Summary922253
+Node: Namespaces923532
+Node: Global Namespace924611
+Node: Qualified Names926009
+Node: Default Namespace927008
+Node: Changing The Namespace927749
+Node: Naming Rules929363
+Node: Internal Name Management931211
+Node: Namespace Example932253
+Node: Namespace And Features934815
+Node: Namespace Summary936250
+Node: Arbitrary Precision Arithmetic937727
+Node: Computer Arithmetic939214
+Ref: table-numeric-ranges942980
+Ref: table-floating-point-ranges943473
+Ref: Computer Arithmetic-Footnote-1944131
+Node: Math Definitions944188
+Ref: table-ieee-formats947504
+Ref: Math Definitions-Footnote-1948107
+Node: MPFR features948212
+Node: FP Math Caution949930
+Ref: FP Math Caution-Footnote-1951002
+Node: Inexactness of computations951371
+Node: Inexact representation952331
+Node: Comparing FP Values953691
+Node: Errors accumulate954932
+Node: Getting Accuracy956365
+Node: Try To Round959075
+Node: Setting precision959974
+Ref: table-predefined-precision-strings960671
+Node: Setting the rounding mode962501
+Ref: table-gawk-rounding-modes962875
+Ref: Setting the rounding mode-Footnote-1966806
+Node: Arbitrary Precision Integers966985
+Ref: Arbitrary Precision Integers-Footnote-1970160
+Node: Checking for MPFR970309
+Node: POSIX Floating Point Problems971783
+Ref: POSIX Floating Point Problems-Footnote-1976068
+Node: Floating point summary976106
+Node: Dynamic Extensions978296
+Node: Extension Intro979849
+Node: Plugin License981115
+Node: Extension Mechanism Outline981912
+Ref: figure-load-extension982351
+Ref: figure-register-new-function983916
+Ref: figure-call-new-function985008
+Node: Extension API Description987070
+Node: Extension API Functions Introduction988712
+Ref: table-api-std-headers990548
+Node: General Data Types994413
+Ref: General Data Types-Footnote-11002774
+Node: Memory Allocation Functions1003073
+Ref: Memory Allocation Functions-Footnote-11007283
+Node: Constructor Functions1007382
+Node: Registration Functions1010968
+Node: Extension Functions1011653
+Node: Exit Callback Functions1016975
+Node: Extension Version String1018225
+Node: Input Parsers1018888
+Node: Output Wrappers1031609
+Node: Two-way processors1036121
+Node: Printing Messages1038386
+Ref: Printing Messages-Footnote-11039557
+Node: Updating ERRNO1039710
+Node: Requesting Values1040449
+Ref: table-value-types-returned1041186
+Node: Accessing Parameters1042122
+Node: Symbol Table Access1043357
+Node: Symbol table by name1043869
+Ref: Symbol table by name-Footnote-11046893
+Node: Symbol table by cookie1047021
+Ref: Symbol table by cookie-Footnote-11051206
+Node: Cached values1051270
+Ref: Cached values-Footnote-11054806
+Node: Array Manipulation1054959
+Ref: Array Manipulation-Footnote-11056050
+Node: Array Data Types1056087
+Ref: Array Data Types-Footnote-11058745
+Node: Array Functions1058837
+Node: Flattening Arrays1063335
+Node: Creating Arrays1070311
+Node: Redirection API1075078
+Node: Extension API Variables1077911
+Node: Extension Versioning1078622
+Ref: gawk-api-version1079051
+Node: Extension GMP/MPFR Versioning1080782
+Node: Extension API Informational Variables1082410
+Node: Extension API Boilerplate1083483
+Node: Changes from API V11087457
+Node: Finding Extensions1089029
+Node: Extension Example1089588
+Node: Internal File Description1090386
+Node: Internal File Ops1094466
+Ref: Internal File Ops-Footnote-11105816
+Node: Using Internal File Ops1105956
+Ref: Using Internal File Ops-Footnote-11108339
+Node: Extension Samples1108613
+Node: Extension Sample File Functions1110142
+Node: Extension Sample Fnmatch1117791
+Node: Extension Sample Fork1119278
+Node: Extension Sample Inplace1120496
+Node: Extension Sample Ord1123800
+Node: Extension Sample Readdir1124636
+Ref: table-readdir-file-types1125525
+Node: Extension Sample Revout1126330
+Node: Extension Sample Rev2way1126919
+Node: Extension Sample Read write array1127659
+Node: Extension Sample Readfile1129601
+Node: Extension Sample Time1130696
+Node: Extension Sample API Tests1132044
+Node: gawkextlib1132536
+Node: Extension summary1135454
+Node: Extension Exercises1139156
+Node: Language History1140398
+Node: V7/SVR3.11142054
+Node: SVR41144206
+Node: POSIX1145640
+Node: BTL1147020
+Node: POSIX/GNU1147749
+Node: Feature History1153527
+Node: Common Extensions1169573
+Node: Ranges and Locales1170856
+Ref: Ranges and Locales-Footnote-11175472
+Ref: Ranges and Locales-Footnote-21175499
+Ref: Ranges and Locales-Footnote-31175734
+Node: Contributors1175955
+Node: History summary1181900
+Node: Installation1183280
+Node: Gawk Distribution1184224
+Node: Getting1184708
+Node: Extracting1185671
+Node: Distribution contents1187309
+Node: Unix Installation1193789
+Node: Quick Installation1194471
+Node: Shell Startup Files1196885
+Node: Additional Configuration Options1197974
+Node: Configuration Philosophy1200139
+Node: Non-Unix Installation1202508
+Node: PC Installation1202968
+Node: PC Binary Installation1203806
+Node: PC Compiling1204241
+Node: PC Using1205358
+Node: Cygwin1208911
+Node: MSYS1210010
+Node: VMS Installation1210511
+Node: VMS Compilation1211302
+Ref: VMS Compilation-Footnote-11212531
+Node: VMS Dynamic Extensions1212589
+Node: VMS Installation Details1214274
+Node: VMS Running1216527
+Node: VMS GNV1220806
+Node: VMS Old Gawk1221541
+Node: Bugs1222012
+Node: Bug address1222675
+Node: Usenet1225657
+Node: Maintainers1226661
+Node: Other Versions1227922
+Node: Installation summary1234836
+Node: Notes1236038
+Node: Compatibility Mode1236832
+Node: Additions1237614
+Node: Accessing The Source1238539
+Node: Adding Code1239976
+Node: New Ports1246195
+Node: Derived Files1250683
+Ref: Derived Files-Footnote-11256329
+Ref: Derived Files-Footnote-21256364
+Ref: Derived Files-Footnote-31256962
+Node: Future Extensions1257076
+Node: Implementation Limitations1257734
+Node: Extension Design1258917
+Node: Old Extension Problems1260061
+Ref: Old Extension Problems-Footnote-11261579
+Node: Extension New Mechanism Goals1261636
+Ref: Extension New Mechanism Goals-Footnote-11265000
+Node: Extension Other Design Decisions1265189
+Node: Extension Future Growth1267302
+Node: Notes summary1268138
+Node: Basic Concepts1269313
+Node: Basic High Level1269994
+Ref: figure-general-flow1270276
+Ref: figure-process-flow1270961
+Ref: Basic High Level-Footnote-11274262
+Node: Basic Data Typing1274447
+Node: Glossary1277775
+Node: Copying1309613
+Node: GNU Free Documentation License1347156
+Node: Index1372276

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 7a8354eb..48ec7032 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -59,7 +59,7 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH February, 2019
+@set UPDATE-MONTH March, 2019
@set VERSION 5.0
@set PATCHLEVEL 0
@@ -5541,6 +5541,14 @@ You can combine regular expressions with special characters,
called @dfn{regular expression operators} or @dfn{metacharacters}, to
increase the power and versatility of regular expressions.
+@menu
+* Regexp Operator Details:: The actual details.
+* Interval Expressions:: Notes on interval expressions.
+@end menu
+
+@node Regexp Operator Details
+@subsection Regexp Operators in @command{awk}
+
The escape sequences described
@ifnotinfo
earlier
@@ -5718,6 +5726,26 @@ Matches @samp{whhhy}, @samp{whhhhy}, or @samp{whhhhhy} only.
@item wh@{2,@}y
Matches @samp{whhy}, @samp{whhhy}, and so on.
@end table
+@end table
+
+@cindex precedence, regexp operators
+@cindex regular expressions, operators, precedence of
+In regular expressions, the @samp{*}, @samp{+}, and @samp{?} operators,
+as well as the braces @samp{@{} and @samp{@}},
+have
+the highest precedence, followed by concatenation, and finally by @samp{|}.
+As in arithmetic, parentheses can change how operators are grouped.
+
+@cindex POSIX @command{awk}, regular expressions and
+@cindex @command{gawk}, regular expressions, precedence
+In POSIX @command{awk} and @command{gawk}, the @samp{*}, @samp{+}, and
+@samp{?} operators stand for themselves when there is nothing in the
+regexp that precedes them. For example, @code{/+/} matches a literal
+plus sign. However, many other versions of @command{awk} treat such a
+usage as a syntax error.
+
+@node Interval Expressions
+@subsection Some Notes On Interval Expressions
@cindex POSIX @command{awk}, interval expressions in
Interval expressions were not traditionally available in @command{awk}.
@@ -5745,26 +5773,14 @@ using a string constant with a regexp operator or function.}
Finally, when @samp{@{} and @samp{@}} appear in regexp constants
in a way that cannot be interpreted as an interval expression
(such as @code{/q@{a@}/}), then they stand for themselves.
-@end table
-@cindex precedence, regexp operators
-@cindex regular expressions, operators, precedence of
-In regular expressions, the @samp{*}, @samp{+}, and @samp{?} operators,
-as well as the braces @samp{@{} and @samp{@}},
-have
-the highest precedence, followed by concatenation, and finally by @samp{|}.
-As in arithmetic, parentheses can change how operators are grouped.
-
-@cindex POSIX @command{awk}, regular expressions and
-@cindex @command{gawk}, regular expressions, precedence
-In POSIX @command{awk} and @command{gawk}, the @samp{*}, @samp{+}, and
-@samp{?} operators stand for themselves when there is nothing in the
-regexp that precedes them. For example, @code{/+/} matches a literal
-plus sign. However, many other versions of @command{awk} treat such a
-usage as a syntax error.
+As mentioned, interval expressions were not traditionally available
+in @command{awk}. In March of 2019, Brian Kernighan's
+@command{awk} (finally) acquired them.
-If @command{gawk} is in compatibility mode (@pxref{Options}), interval
-expressions are not available in regular expressions.
+Nonetheless, because they were not available for
+so many decades, @command{gawk} continues to not supply them
+when in compatibility mode (@pxref{Options}).
@node Bracket Expressions
@section Using Bracket Expressions
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 1aa632db..4cbc3484 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -54,7 +54,7 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH February, 2019
+@set UPDATE-MONTH March, 2019
@set VERSION 5.0
@set PATCHLEVEL 0
@@ -5368,6 +5368,14 @@ You can combine regular expressions with special characters,
called @dfn{regular expression operators} or @dfn{metacharacters}, to
increase the power and versatility of regular expressions.
+@menu
+* Regexp Operator Details:: The actual details.
+* Interval Expressions:: Notes on interval expressions.
+@end menu
+
+@node Regexp Operator Details
+@subsection Regexp Operators in @command{awk}
+
The escape sequences described
@ifnotinfo
earlier
@@ -5545,6 +5553,26 @@ Matches @samp{whhhy}, @samp{whhhhy}, or @samp{whhhhhy} only.
@item wh@{2,@}y
Matches @samp{whhy}, @samp{whhhy}, and so on.
@end table
+@end table
+
+@cindex precedence, regexp operators
+@cindex regular expressions, operators, precedence of
+In regular expressions, the @samp{*}, @samp{+}, and @samp{?} operators,
+as well as the braces @samp{@{} and @samp{@}},
+have
+the highest precedence, followed by concatenation, and finally by @samp{|}.
+As in arithmetic, parentheses can change how operators are grouped.
+
+@cindex POSIX @command{awk}, regular expressions and
+@cindex @command{gawk}, regular expressions, precedence
+In POSIX @command{awk} and @command{gawk}, the @samp{*}, @samp{+}, and
+@samp{?} operators stand for themselves when there is nothing in the
+regexp that precedes them. For example, @code{/+/} matches a literal
+plus sign. However, many other versions of @command{awk} treat such a
+usage as a syntax error.
+
+@node Interval Expressions
+@subsection Some Notes On Interval Expressions
@cindex POSIX @command{awk}, interval expressions in
Interval expressions were not traditionally available in @command{awk}.
@@ -5572,26 +5600,14 @@ using a string constant with a regexp operator or function.}
Finally, when @samp{@{} and @samp{@}} appear in regexp constants
in a way that cannot be interpreted as an interval expression
(such as @code{/q@{a@}/}), then they stand for themselves.
-@end table
-@cindex precedence, regexp operators
-@cindex regular expressions, operators, precedence of
-In regular expressions, the @samp{*}, @samp{+}, and @samp{?} operators,
-as well as the braces @samp{@{} and @samp{@}},
-have
-the highest precedence, followed by concatenation, and finally by @samp{|}.
-As in arithmetic, parentheses can change how operators are grouped.
-
-@cindex POSIX @command{awk}, regular expressions and
-@cindex @command{gawk}, regular expressions, precedence
-In POSIX @command{awk} and @command{gawk}, the @samp{*}, @samp{+}, and
-@samp{?} operators stand for themselves when there is nothing in the
-regexp that precedes them. For example, @code{/+/} matches a literal
-plus sign. However, many other versions of @command{awk} treat such a
-usage as a syntax error.
+As mentioned, interval expressions were not traditionally available
+in @command{awk}. In March of 2019, Brian Kernighan's
+@command{awk} (finally) acquired them.
-If @command{gawk} is in compatibility mode (@pxref{Options}), interval
-expressions are not available in regular expressions.
+Nonetheless, because they were not available for
+so many decades, @command{gawk} continues to not supply them
+when in compatibility mode (@pxref{Options}).
@node Bracket Expressions
@section Using Bracket Expressions