return to the main page Mastering Regular Expressions
Second Edition
by Jeffrey Friedl

Full Index -- use your browser's find function to search.

\?   139
\<...\>   21, 25, 50, 131-132, 150
\<...\>, in egrep   15
\<...\>, in Emacs   100
\<...\>, mimicking in Perl   341-342
\+   139
\(...\)   135
`\+'   history 87
\0   116-117
\1   136, 300, 303
\1, in Perl   41
\A   111, 127-128
\A, in Java   373
\A, optimization   246
\a   114-115
\b   65, 114-115, 400
\b, backspace and word boundary   44, 46
\b, in Perl   286
\b\B   240
\C   328
\D   49, 119
\d   49, 119
\d, in Perl   288
\e   79, 114-115
\E   290
\f   114-115
\f, introduced   44
\G   128-131, 212, 315-316, 362
\G, advanced example   130
\G, in Java   373
\G, in .NET   402
\G, optimization   246
\G, optimization, \kname   (see named capture)
\l   290
\L...\E   290
\L...\E, inhibiting   292
\n   49, 114-115
\n, introduced   44
\n, machine-dependency   114
\N{LATIN SMALL LETTER SHARP S}   290
\N{name}   290
\N{name}, inhibiting   292
\p{...}   119
\p{^...}   288
\p{all}   380
\p{All}   123
\p{All}, in Perl   288
\p{Any}   123
\p{Any}, in Perl   288
\p{Arrows}   122
\p{Assigned}   123-124
\p{Assigned}, in Perl   288
\p{Basic_Latin}   122
\p{Box_Drawing}   122
\p{C}   120
\p{Cc}   121
\p{Cf}   121
\p{Cherokee}   120
\p{Close_Punctuation}   121
\p{Cn}   121, 123-124, 380, 401
\p{Co}   121
\p{Connector_Punctuation}   121
\p{Control}   121
\p{Currency}   122
\p{Currency_Symbol}   121
\p{Cyrillic}   120, 122
\p{Dash_Punctuation}   121
\p{Decimal_Digit_Number}   121
\p{Dingbats}   122
\p{Enclosing_Mark}   121
\p{Final_Punctuation}   121
\p{Format}   121
\p{Gujarati}   120
\p{Han}   120
\p{Hangul_Jamo}   122
\p{Hebrew}   120, 122
\p{Hiragana}   120
\p{InArrows}   122
\p{InBasic_Latin}   122
\p{InBox_Drawing}   122
\p{InCurrency}   122
\p{InCyrillic}   122
\p{InDingbats}   122
\p{InHangul_Jamo}   122
\p{InHebrew}   122
\p{Inherited}   122
\p{Initial_Punctuation}   121
\p{InKatakana}   122
\p{InTamil}   122
\p{InTibetan}   122
\p{IsCherokee}   120
\p{IsCommon}   122
\p{IsCyrillic}   120
\p{IsGujarati}   120
\p{IsHan}   120
\p{IsHebrew}   120
\p{IsHiragana}   120
\p{IsKatakana}   120
\p{IsLatin}   120
\p{IsThai}   120
\p{IsTibetan}   122
\p{Katakana}   120, 122
\p{L}   119-120, 131, 380, 390
\p{L&}   120-121, 123
\p{L&}, in Perl   288
\p{Latin}   120
\p{Letter}   120, 288
\p{Letter_Number}   121
\p{Line_Separator}   121
\p{Ll}   121, 400
\p{Lm}   121, 400
\p{Lo}   121, 400
\p{Lowercase_Letter}   121
\p{Lt}   121, 400
\p{Lu}   121, 400
\p{M}   120, 125
\p{Mark}   120
\p{Math_Symbol}   121
\p{Mc}   121
\p{Me}   121
\p{Mn}   121
\p{Modifier_Letter}   121
\p{Modifier_Symbol}   121
\p{N}   120, 390
\p{Nd}   121, 380, 400
\p{Nl}   121
\p{No}   121
\p{Non_Spacing_Mark}   121
\p{Number}   120
\p{Open_Punctuation}   121
\p{Other}   120
\p{Other_Letter}   121
\p{Other_Number}   121
\p{Other_Punctuation}   121
\p{Other_Symbol}   121
\p{P}   120
\p{Paragraph_Separator}   121
\p{Pc}   121, 400
\p{Pd}   121
\p{Pe}   121
\p{Pf}   121, 400
\p{Pi}   121, 400
\p{Po}   121
\p{Private_Use}   121
\p{Ps}   121
\p{Punctuation}   120
\p{S}   120
\p{Sc}   121-122
\p{Separator}   120
\p{Sk}   121
\p{Sm}   121
\p{So}   121
\p{Space_Separator}   121
\p{Spacing_Combining_Mark}   121
\p{Symbol}   120
\p{Tamil}   122
\p{Thai}   120
\p{Tibetan}   122
\p{Titlecase_Letter}   121
\p{Unassigned}   121, 123
\p{Unassigned}, in Perl   288
\p{Uppercase_Letter}   121
\p{Z}   119-120, 380, 400
\p{Zl}   121
\p{Zp}   121
\p{Zs}   121
\Q...\E   290
\Q...\E, inhibiting   292
\Q...\E, in Java   373
\r   49, 114-115
\r, machine-dependency   114
\s   49, 119
\s, introduction   47
\s, in Emacs   127
\s, in Perl   288
\S   49, 56, 119
\t   49, 114-115
\t, introduced   44
\u   116, 290, 400
\U   116
\U...\E   290
\U...\E, inhibiting   292
\V   364
\v   114-115, 364
\W   49, 119
\w   49, 65, 119
\w, in Emacs   127
\w, many different interpretations   93
\w, in Perl   288
\x   116, 400
\x, in Perl   286
\X   107, 125
\z   111, 127-128, 316
\z, in Java   373
\z, optimization   246
\Z   111, 127-128
\Z, in Java   373
\Z, optimization   246
//   322
/c   129-130, 315
/e   319-321
/g   61, 130, 307, 311-312, 315, 319
/g, introduced   51
/g, with regex object   354
/i   134
/i, introduced   47
/i, with study   359
/m   134
/o   352-353
/o, with regex object   354
/osmosis   293
/s   134
/x   134, 288
/x, introduced   72
/x, history   90
-Dr   363
-i   as -y 86
-y   old grep 86
<>   54
<>, and $_   79
!~   309
$_   79, 308, 311, 314, 318, 322, 353-354, 359
$_, in .NET   418
$&   299-300
$&, checking for   358
$&, mimicking   302, 357
$&, naughty   356
$&, in .NET   418
$&, okay for debugging   331
$&, pre-match copy   355
$$   in .NET 418
$*   362
$   111-112, 128
$, escaping   77
$, optimization   246
$, Perl interpolation   289
$+   300-301, 345
$+, example   202
$+, .NET   202
$+, in .NET   418
$/   35, 78
$'   300
$', checking for   358
$', mimicking   357
$', naughty   356
$', in .NET   418
$', okay for debugging   331
$', pre-match copy   355
$`   300
$`, checking for   358
$`, mimicking   357
$`, naughty   356
$`, in .NET   418
$`, okay for debugging   331
$`, pre-match copy   355
$0   300
$1   135-136, 300, 303
$1, introduced   41
$1, in Java   388
$1, in .NET   418
$1, in other languages   136
$1, pre-match copy   355
$ARGV   79
$HostnameRegex   76, 136, 303, 351
$HttpUrl   303, 305, 345, 351
$LevelN   330, 343
$^N   300-301, 344-346
${name}   403
${name~}   418
$NestedStuffRegex   339, 346
$^R   302, 327
$^W   297
%   Perl interpolation 289
(?!)   240, 333, 335, 340-341
(?#...)   99, 134, 414
(?#...), in Java   373
(?#...), in Java, (?:...)   (see non-capturing parentheses)
(?#...), in Java, (...)   (see parentheses)
(?#...), in Java, (?i)   (see: case-insensitive mode; mode modifier)
(?#...), in Java, (?i:...)   (see mode-modified span)
(?#...), in Java, (?if then|else)   (see conditional)
(?#...), in Java, (?m:...)   (see mode-modified span)
(?#...), in Java, (?m)   (see: enhanced line-anchor mode; mode modifier)
(?n)   402
.*, introduced   55
.*, mechanics of matching   152
.*, optimization   246
.*, warning about   56
.NET   399-432
.NET, $+   202
.NET, flavor overview   91
.NET, after-match data   136
.NET, benchmarking   236
.NET, JIT   404
.NET, line anchors   128
.NET, literal-text mode   135
.NET, MISL   404
.NET, object model   411
.NET, regex approach   96-97
.NET, regex flavor   401
.NET, search-and-replace   408, 417-418
.NET, URL parsing example   204
.NET, version covered   91
.NET, word boundaries   132
=~   308-309, 318
=~, introduced   38
=~, introduced, ?   (see question mark)
?...?   308
@+   300, 302, 314
@"..."   102
@-   300, 302, 339
@   Perl interpolation 289
[=...=]   126
[:<:]   92
[:...:]   125-126
[.....]   126
\p{...}   in java.util.regex 380
^   111-112, 128
^, optimization   245-246
^Subject: example   94, 151-152, 154, 242, 244-245, 289
^Subject: example, in Java   95, 393
^Subject: example, in Perl   55
^Subject: example, in Perl debugger   361
^Subject: example, in Python   97
^Subject: example, in VB.NET   96
{min,max}   20, 140
\0   116-117
$0   300
\1   136, 300, 303
\1, in Perl   41
$1   135-136, 300, 303
$1, introduced   41
$1, in Java   388
$1, in .NET   418
$1, in other languages   136
$1, pre-match copy   355
8859-1 encoding   29, 87, 105, 107, 121
\A   111, 127-128
\A, in Java   373
\A, optimization   246
@   escaping 77
\a   114-115
issues overview encoding   105
after-match variables, in Perl   299
after-match variables, pre-match copy   355
Aho, Alfred   86, 180
\p{All}   123
\p{All}, in Perl   288
\p{all}   380
all-in-one object model   369
alternation   138
alternation, and backtracking   231
alternation, introduced   13-14
alternation, efficiency   222, 231
alternation, greedy   174-175
alternation, hand tweaking   260-261
alternation, order of   175-177, 223, 260
alternation, order of, for correctness   28, 189, 197
alternation, order of, for efficiency   224
alternation, and parentheses   13
analogy, backtracking, bread crumbs   158-159
analogy, backtracking, stacking dishes   159
analogy, ball rolling   261
analogy, building a car   31
analogy, charging batteries   179
analogy, engines   143-147
analogy, first come, first served   153
analogy, gas additive   150
analogy, learning regexes, Pascal   36
analogy, learning regexes, playing rummy   33
analogy, regex as a language   5, 27
analogy, regex as filename patterns   4
analogy, regex as filename patterns, regex-directed match   (see NFA)
analogy, regex as filename patterns, text-directed match   (see DFA)
analogy, transmission   148-149, 228
analogy, transparencies (Perl's local)   298
analogy, transparencies (Perl's local), anchor   (also see: word boundaries; enhanced line-anchor mode)
analogy, overview   127
analogy, caret   127
analogy, dollar   127
analogy, end-of-line optimization   246
analogy, exposing   255
analogy, line   87, 111-112, 150
anchored(...)   362
anchored `string'   362
AND   class set operations 123-124
ANSI escape sequences   79
\p{Any}   123
\p{Any}, in Perl   288
\p{Any}, in Perl, any character   (see dot)
Apache, org.apache.xerces.utils.regex   372
Apache, ORO   392-398
Apache, ORO, benchmark results   376
Apache, ORO, comparative description   374
Apache, Regexp, comparative description   375
Apache, Regexp, speed   376
appendReplacement()   388
appendTail()   389
$ARGV   79
\p{Arrows}   122
ASCII encoding   29, 105-106, 114, 121
Asian character encoding   29
AssemblyName   429
\p{Assigned}   123-124
\p{Assigned}, in Perl   288
\p{Assigned}, in Perl, asterisk   (see star)
\p{Assigned}, in Perl, atomic grouping   (also see possessive quantifiers)
\p{Assigned}, introduced   137-138
\p{Assigned}, details   170-172
\p{Assigned}, for efficiency   171-172, 259, 268-270
\p{Assigned}, essence   170-171
\p{Assigned}, example   198, 201, 213, 271, 330, 340-341, 346
AT&T Bell Labs   86
auto-lookaheadification   403
automatic possessification   251
awk, after-match data   136
awk, gensub   183
awk, history   87
awk, search-and-replace   99
awk, version covered   91
awk, word boundaries   132
\b   65, 114-115, 400
\b, backspace and word boundary   44, 46
\b, in Perl   286
<B>...</B>   165-167
<B>...</B>, unrolling   270
\b\B   240
backreferences   117, 135
backreferences, introduced with egrep   20-22
backreferences, DFA   150, 182-183
backreferences, vs. octal escape   406-407
backreferences, remembering text   21
backreferences, remembering text, backspace   (see \b)
backtracking   163-177
backtracking, introduction   157-163
backtracking, and alternation   231
backtracking, avoiding   171-172
backtracking, computing count   227
backtracking, counting   222, 224
backtracking, detecting excessive   249-250
backtracking, efficiency   179-180
backtracking, essence   168-169
backtracking, exponential match   226
backtracking, global view   228-232
backtracking, LIFO   159
backtracking, of lookaround   173-174
backtracking, neverending match   226
backtracking, non-match example   160-161
backtracking, POSIX NFA example   229
backtracking, saved states   159
backtracking, simple example   160
backtracking, simple lazy example   161
balanced constructs   328-331, 340-341, 430
balancing regex issues   186
Balling, Derek   xxii
Barwise, J.   85
base character   107, 125
Basic Regular Expressions   87-88
\p{Basic_Latin}   122
\b\B   240
beginOffset   396
benchmarking   232-239
benchmarking, comparative   248, 376-377
benchmarking, compile caching   351
benchmarking, in Java   234-236, 375-377
benchmarking, for naughty variables   358
benchmarking, in .NET   236, 404
benchmarking, with neverending match   227
benchmarking, in Perl   360
benchmarking, pre-match copy   356
benchmarking, in Python   237
benchmarking, in Ruby   238
benchmarking, in Tcl   239
Bennett, Mike   xxi
Berkeley   86
Better-Late-Than-Never   234-236, 375
<B>...</B>   165-167
<B>...</B>, unrolling   270
blocks   122, 288, 380, 400
BLTN   235-236, 375
BOL   362
\p{Box_Drawing}   122
Boyer-Moore   244, 247
bracket expressions   125
BRE   87-88
bread-crumb analogy   158-159
Bulletin of Math. Biophysics   85
bump-along, introduction   148-149
bump-along, avoiding   210
bump-along, distrusting   215-218
bump-along, optimization   255
bump-along, in overall processing   241
byte   matching 328
/c   129-130, 315
/c, strings   102
\p{C}   120
\C   328
¢   122
C comments, matching   272-276
C comments, unrolling   275-276
C comments, unrolling, caching   (also see regex objects)
C comments, benchmarking   351
C comments, compile   242-244
C comments, in Emacs   244
C comments, integrated   242
C comments, in Java   393
C comments, in .NET   426
C comments, object-oriented   244
C comments, procedural   243
C comments, in Tcl   244
C comments, unconditional   350
CANON_EQ (Pattern flag)   108, 380
Capture   431
CaptureCollection   432
car analogy   83-84
caret anchor   introduced 8
carriage return   109
case   title 109
case folding   290, 292
case folding, inhibiting   292
CASE_INSENSITIVE (Pattern flag)   95, 109, 380, 383
case-insensitive mode   109
case-insensitive mode, introduced   14-15
case-insensitive mode, egrep   14-15
case-insensitive mode, /i   47
case-insensitive mode, Ruby   109
case-insensitive mode, with study   359
cast   294-295
\p{Cc}   121
\p{Cf}   121
character, base   125
character, classes   117
character, combining   107, 125, 288
character, combining, Inherited script   122
character, vs. combining characters   107
character, control   116
character, initial character discrimination   244-246, 249, 251-252, 257-259, 332, 361
character, machine-dependent codes   114
character, multiple code points   107
character, as opposed to byte   29
character, separating with split   322
character, shorthands   114-115
character class, introduced   9-10
character class, vs. alternation   13
character class, mechanics of matching   149
character class, negated, must match character   11-12
character class, negated, and newline   118
character class, negated, Tcl   111
character class, positive assertion   118
character class, of POSIX bracket expression   125
character class, range   9, 118
character class, as separate language   10
character equivalent   126
CharacterIterator   372
charnames pragma   290
CharSequence   372, 390
CheckNaughtiness   358
\p{Cherokee}   120
Chinese text processing   29
chr   414
chunk limit, Java ORO   395
chunk limit, java.util.regex   391
chunk limit, Perl   323
class, vs. dot   118
class, elimination optimization   249
class, initial class discrimination   244-246, 249, 251-252, 257-259, 332, 361
class, and lazy quantifiers   167
class, set operations   123-125, 375
class, subtraction   124
Clemens, Sam   375
Click, Cliff   xxii
client VM   234, 236
clock clicks   239
\p{Close_Punctuation}   121
closures   339
\p{Cn}   121, 123-124, 380, 401
\p{Co}   121
code point, introduced   106
code point, beyond U+FFFF   108
code point, multiple   107
code point, unassigned in block   122
coerce   294-295
cold VM   235
collating sequences   126
combining character   107, 125, 288
combining character, Inherited script   122
com.ibm.regex, comparative description   372
com.ibm.regex, speed   377
commafying a number example   64-65
commafying a number example, introduced   59
commafying a number example, in Java   393
commafying a number example, without lookbehind   67
COMMAND.COM   7
comments   99, 134
comments, in Java   98
comments, matching of C comments   272-276
comments, matching of Pascal comments   265
comments, in .NET regex   414
COMMENTS (Pattern flag)   99, 218, 378, 380, 386
comments and free-spacing mode   110
Communications of the ACM   85
compile()   383
compile, caching   242-244
compile, once (/o)   352-353
compile, on-demand   351
compile, regex   404-405
compile() (Pattern factory)   383
Compiled (.NET)   236, 402, 404, 414, 421-422, 429
Compilers -- Principles, Techniques, and Tools   180
CompileToAssembly   427, 429
com.stevesoft.pat, comparative description   374
com.stevesoft.pat, speed   377
conditional   138-139
conditional, with embedded regex   327, 335
conditional, in Java   373
conditional, mimicking with lookaround   139
conditional, in .NET   403
Config module   290, 299
conflicting metacharacters   44-46
\p{Connector_Punctuation}   121
Constable, Robert   85
Constable, Robert, forcing   310
Constable, Robert, metacharacters   44-46
Constable, Robert, regex use   189
continuation lines   178, 186-187
continuation lines, unrolling   270
contorting an expression   294-295
\p{Control}   121
control characters   116
Conway, Damian   339
cooking for HTML   68, 408
correctness   vs. efficiency 223-224
www.cpan.org   358
CR   109, 382
Cruise, Tom   51
crummy analogy   158-159
CSV parsing example, java.util.regex   218, 386
CSV parsing example, .NET   429
CSV parsing example, ORO   397
CSV parsing example, Perl   212-219
CSV parsing example, unrolling   271
currency, \p{Currency}   122
currency, \p{Currency_Symbol}   121
currency, \p{Sc}   121
currency, Unicode block   121-122
\p{Currency}   122
\p{Currency_Symbol}   121
currentTimeMillis()   236
\p{Cyrillic}   120, 122
\d   49, 119
\d, in Perl   288
\D   49, 119
Darth   197
dash in character class   9
\p{Dash_Punctuation}   121
DBIx::DWIW   258
debugcolor   363
debugging   361-363
debugging, with embedded code   331-332
debugging, regex objects   305-306
debugging, run-time   362
\p{Decimal_Digit_Number}   121
default regex   308
define-key   100
delegate   417-418
delimited text   196-198
delimited text, standard formula   196, 273
delimiter, with shell   7
delimiter, with substitution   319
delimiter, with substitution, Deterministic Finite Automaton   (see DFA)
Devel::FindAmpersand   358
Devel::SawAmpersand   358
DFA, introduced   145, 155
DFA, acronym spelled out   156
DFA, backreferences   150, 182-183
DFA, boring   157
DFA, compared with NFA   224, 227
DFA, efficiency   179
DFA, implementation ease   182
DFA, lazy evaluation   181
DFA, longest-leftmost match   177-179
DFA, testing for   146-147
DFA, in theory, same as an NFA   180
dialytika   108
\p{Dingbats}   122
dish-stacking analogy   159
dollar   for Perl variable 37
dollar anchor   127
dollar anchor, introduced   8
dollar value example   24-25, 51-52, 167-170, 175, 194-195
DOS   7
dot   118
dot, introduced   11-12
dot, vs. character class   118
dot, mechanics of matching   149
dot, Tcl   112
.NET   399-432
.NET, $+   202
.NET, flavor overview   91
.NET, after-match data   136
.NET, benchmarking   236
.NET, JIT   404
.NET, line anchors   128
.NET, literal-text mode   135
.NET, MISL   404
.NET, object model   411
.NET, regex approach   96-97
.NET, regex flavor   401
.NET, search-and-replace   408, 417-418
.NET, URL parsing example   204
.NET, version covered   91
.NET, word boundaries   132
DOTALL (Pattern flag)   380, 382
dot-matches-all mode   110-111
doubled-word example, description   1
doubled-word example, in egrep   22
doubled-word example, in Emacs   100
doubled-word example, in Java   81
doubled-word example, in Perl   35, 77-80
double-quoted string example, allowing escaped quotes   196
double-quoted string example, egrep   24
double-quoted string example, final regex   263
double-quoted string example, makudonarudo   165, 169, 228-232, 264
double-quoted string example, sobering example   222-228
double-quoted string example, unrolled   262, 268
double-word finder example, description   1
double-word finder example, in egrep   22
double-word finder example, in Emacs   100
double-word finder example, in Java   81
double-word finder example, in Perl   35, 77-80
-Dr   363
dragon book   180
DWIW (DBIx)   258
dynamic regex   327-331
dynamic regex, sanitizing   337
dynamic scope   295-299
dynamic scope, vs. lexical scope   299
/e   319-321
\e   79, 114-115
\E   290
earliest match wins   148-149
EBCDIC   29
ECMAScript (.NET)   400, 402, 406-407, 415, 421
ed   85
ed, and backtracking   179-180
ed, correctness   223-224
ed, Perl-specific issues   347-363
ed, regex objects   353-354
ed, unlimited lookbehind   133
egrep, flavor overview   91
egrep, introduced   6-8
egrep, metacharacter discussion   8-22
egrep, after-match data   136
egrep, backreference support   150
egrep, case-insensitive match   15
egrep, doubled-word solution   22
egrep, example use   14
egrep, flavor summary   32
egrep, history   86-87
egrep, regex implementation   182
egrep, version covered   91
egrep, word boundaries   132
electric engine analogy   143-147
Emacs, flavor overview   91
Emacs, after-match data   136
Emacs, control characters   116
Emacs, re-search-forward   100
Emacs, search   100
Emacs, strings as regexes   100
Emacs, syntax class   127
Emacs, version covered   91
Emacs, word boundaries   132
email address example   70-73, 98
email address example, in Java   98
email address example, in VB.NET   99
embedded code, local   336
embedded code, my   338-339
embedded code, regex construct   327, 331-335
embedded code, sanitizing   337
embedded string check optimization   247, 257
Embodiments of Mind   85
Empty   426
\p{Enclosing_Mark}   121
\p{Enclosing_Mark}, introduced   29
\p{Enclosing_Mark}, issues overview   105
\p{Enclosing_Mark}, ASCII   29, 105-106, 114, 121
\p{Enclosing_Mark}, Latin-1   29, 87, 105, 107, 121
\p{Enclosing_Mark}, UCS-2   106
\p{Enclosing_Mark}, UCS-4   106
\p{Enclosing_Mark}, UTF-16   106
\p{Enclosing_Mark}, UTF-8   106
end()   385
END block   358
endOffset   396
end-of-string anchor optimization   246
engine, introduced   27
engine, analogy   143-147
engine, hybrid   183, 239, 243
engine, implementation ease   182
engine, testing type   146-147
engine, testing type, with neverending match   227
engine, type comparison   156-157, 180-182
English module   357
English vs. regex   275
enhanced line-anchor mode   111-112
enhanced line-anchor mode, introduced   69
ERE   87-88
errata   xxi
Escape   427
escape, introduced   22
escape, term defined   27
essence, atomic grouping   170-171
essence, greediness, laziness, and backtracking   168-169
essence, greediness, laziness, and backtracking, NFA   (see backtracking)
eval   319
example, atomic grouping   198, 201, 213, 271, 330, 340-341, 346
example, commafying a number   64-65
example, commafying a number, introduced   59
example, commafying a number, in Java   393
example, commafying a number, without lookbehind   67
example, CSV parsing, java.util.regex   218, 386
example, CSV parsing, .NET   429
example, CSV parsing, ORO   397
example, CSV parsing, Perl   212-219
example, CSV parsing, unrolling   271
example, dollar value   24-25, 51-52, 167-170, 175, 194-195
example, double-quoted string, allowing escaped quotes   196
example, double-quoted string, egrep   24
example, double-quoted string, final regex   263
example, double-quoted string, makudonarudo   165, 169, 228-232, 264
example, double-quoted string, sobering example   222-228
example, double-quoted string, unrolled   262, 268
example, double-word finder, description   1
example, double-word finder, in egrep   22
example, double-word finder, in Emacs   100
example, double-word finder, in Java   81
example, double-word finder, in Perl   35, 77-80
example, email address   70-73, 98
example, email address, in Java   98
example, email address, in VB.NET   99
example, filename   190-192
example, five modifiers   316
example, floating-point number   194
example, form letter   50-51
example, gr[ea]y   9
example, hostname   22, 73, 76, 98-99, 136-137, 203, 260, 267, 304, 306
example, hostname, egrep   25
example, hostname, Java   209
example, hostname, plucking from text   71-73, 205-208
example, hostname, in a URL   74-77
example, hostname, validating   203-205
example, hostname, VB.NET   204
example, HTML, conversion from text   67-77
example, HTML, cooking   68, 408
example, HTML, encoding   408
example, HTML, <HR>   194
example, HTML, link   201-203
example, HTML, optional   139
example, HTML, paired tags   165
example, HTML, parsing   130, 315, 321
example, HTML, tag   9, 18-19, 26, 200-201, 326, 357
example, HTML, URL   74-77, 203, 205-208, 303
example, HTML, URL-encoding   320
example, IP   5, 187-189, 267, 311, 314, 348-349
example, Jeffs   61-64
example, lookahead   61-64
example, mail processing   53-59
example, makudonarudo   165, 169, 228-232, 264
example, pathname   190-192
example, population   59
example, possessive quantifiers   198, 201
example, postal code   208-212
example, regex overloading   341-345
example, stock pricing   51-52, 167-168
example, stock pricing, with alternation   175
example, stock pricing, with atomic grouping   170
example, stock pricing, with possessive quantifier   169
example, temperature conversion, in .NET   419
example, temperature conversion, in Java   389
example, temperature conversion, in Perl   37
example, temperature conversion, Perl one-liner   283
example, text-to-HTML   67-77
example, this|that   132, 138, 243, 245-246, 252, 255, 260-261
example, unrolling the loop   270-271
example, URL   74-77, 201-204, 208, 260, 303-304, 306, 320
example, URL, egrep   25
example, URL, Java   209
example, URL, plucking   205-208
example, username   73, 76, 98
example, username, plucking from text   71-73
example, username, in a URL   74-77
example, variable names   24
example, ZIP code   208-212
exception, IllegalArgumentException   383, 388
exception, IllegalStateException   385
exception, IndexOutOfBoundsException   384-385, 388
exception, IOException   81
exception, NullPointerException   396
exception, PatternSyntaxException   381, 383
Explicit (Option)   409
ExplicitCapture (.NET)   402, 414, 421
exponential match   222-228, 330, 340
exponential match, avoiding   264-265
exponential match, discovery   226-228
exponential match, explanation   226-228
exponential match, non-determinism   264
exponential match, short-circuiting   250
exponential match, solving with atomic grouping   268
exponential match, solving with possessive quantifiers   268
expose literal text   255
expression, context   294-295
expression, contorting   294-295
Extended Regular Expressions   87-88
\f   114-115
\f, introduced   44
\f, introduced, Fahrenheit   (see temperature conversion example)
failure, atomic grouping   171-172
failure, forcing   240, 333, 335, 340-341
FF   109
file globs   4
file-check example   2, 36
filename, example   190-192
filename, patterns (globs)   4
filename, prepending to line   79
\p{Final_Punctuation}   121
find()   384
FindAmpersand   358
five modifiers example   316
Flanagan, David   xxii
flavor, Perl   286-293
flavor, superficial chart, general   91
flavor, superficial chart, Perl   285, 287
flavor, superficial chart, POSIX   88
flavor, term defined   27
flex   version covered 91
floating `string'   362
floating-point number example   194
forcing failure   240, 333, 335, 340-341
foreach vs. while vs. if   320
form letter example   50-51
\p{Format}   121
freeflowing regex   277-281
Friedl, Alfred   176
Friedl, brothers   33
Friedl, Fumie   xxi
Friedl, Fumie, birthday   11-12
Friedl, Liz   33
Friedl, Stephen   xxii
fully qualified name   295
functions   related to regexes in Perl 285
\G   128-131, 212, 315-316, 362
\G, advanced example   130
\G, in Java   373
\G, in .NET   402
\G, optimization   246
/g   61, 130, 307, 311-312, 315, 319
/g, introduced   51
/g, with regex object   354
garbage collection   Java benchmarking 236
gas engine analogy   143-147
gensub   183
George, Kit   xxii
GetGroupNames   421-422
GetGroupNumbers   421-422
getMatch()   397
global vs. private   Perl variables 295
globs   filename 4
GNU   Java packages 374
GNU awk, after-match data   136
GNU awk, gensub   183
GNU awk, version covered   91
GNU awk, word boundaries   132
GNU egrep, after-match data   136
GNU egrep, backreference support   150
GNU egrep, doubled-word solution   22
GNU egrep, -i bug   21
GNU egrep, regex implementation   182
GNU egrep, word boundaries   132
GNU egrep, word boundaries, GNU Emacs   (see Emacs)
GNU grep, shortest-leftmost match   183
GNU grep, version covered   91
GNU sed, after-match data   136
GNU sed, version covered   91
GNU sed, word boundaries   132
gnu.regexp, comparative description   374
gnu.regexp, speed   377
gnu.rex   374
Goldberger, Ray   xxii
Gosling, James   89
GPOS   362
gr[ea]y example   9
gr[ea]y example, introduced   151
gr[ea]y example, alternation   174-175
gr[ea]y example, and backtracking   162-177
gr[ea]y example, deference to an overall match   153, 274
gr[ea]y example, essence   159, 168-169
gr[ea]y example, favors match   167-168
gr[ea]y example, first come, first served   153
gr[ea]y example, global vs. local   182
gr[ea]y example, in Java   373
gr[ea]y example, vs. lazy   169, 256-257
gr[ea]y example, localizing   225-226
gr[ea]y example, quantifier   139-140
gr[ea]y example, too greedy   152
green dragon   180
grep, flavor overview   91
grep, as an acronym   85
grep, history   86
grep, regex flavor   86
grep, version covered   91
grep, -y option   86
grep   in Perl 324
group(), java.util.regex   385
group(), ORO   396
Group object (.NET)   412
Group object (.NET), Capture   431
Group object (.NET), creating   423
Group object (.NET), Index   424
Group object (.NET), Length   424
Group object (.NET), Success   424
Group object (.NET), ToString   424
Group object (.NET), using   424
Group object (.NET), Value   424
GroupCollection   423, 432
groupCount()   385
grouping   and capturing 20-22
GroupNameFromNumber   421-422
GroupNumberFromName   421-422
groups()   ORO 397
Groups   Match object method 423
\p{Gujarati}   120
Gutierrez, David   xxii
\p{Han}   120
hand tweaking, alternation   260-261
hand tweaking, caveats   253
\p{Hangul_Jamo}   122
HASH(0x80f60ac)   257
\p{Hebrew}   120, 122
hex escape   116-117
hex escape, in Java   373
hex escape, in Perl   286
Hietaniemi, Jarkko   xxii
highlighting   with ANSI escape sequences 79
\p{Hiragana}   120
history, `\+'   87
history, AT&T Bell Labs   86
history, awk   87
history, Berkeley   86
history, ed trivia   86
history, egrep   86-87
history, grep   86
history, lex   87
history, Perl   88-90, 308
history, of regexes   85-91
history, sed   87
history, underscore in \w   89
history, /x   90
hostname example   22, 73, 76, 98-99, 136-137, 203, 260, 267, 304, 306
hostname example, egrep   25
hostname example, Java   209
hostname example, plucking from text   71-73, 205-208
hostname example, in a URL   74-77
hostname example, validating   203-205
hostname example, VB.NET   204
$HostnameRegex   76, 136, 303, 351
hot VM   235, 375
HTML, cooking   68, 408
HTML, matching tag   200-201
HTML example, conversion from text   67-77
HTML example, cooking   68, 408
HTML example, encoding   408
HTML example, <HR>   194
HTML example, link   201-203
HTML example, optional   139
HTML example, paired tags   165
HTML example, parsing   130, 315, 321
HTML example, tag   9, 18-19, 26, 200-201, 326, 357
HTML example, URL   74-77, 203, 205-208, 303
HTML example, URL-encoding   320
HTTP   newlines 115
HTTP URL example   25, 74-77, 201-209, 260, 303-304, 306, 320
http://regex.info/   xxi, 7, 345, 372
$HttpUrl   303, 305, 345, 351
hybrid regex engine   183, 239, 243
hyphen in character class   9
-i   as -y 86
/i   134
/i, introduced   47
/i, with study   359
/i, with study, (?i)   (see: case-insensitive mode; mode modifier)
IBM (Java package), comparative description   372
IBM (Java package), speed   377
identifier   matching 24
if   vs. while vs. foreach 320
IgnoreCase (.NET)   96, 99, 402, 413, 421
IgnorePatternWhitespace (.NET)   99, 402, 413, 421
IllegalArgumentException   383, 388
IllegalStateException   385
implementation of engine   182
implicit   362
implicit anchor optimization   246
Imports   407, 409, 428
\p{InArrows}   122
\p{InBasic_Latin}   122
\p{InBox_Drawing}   122
\p{InCurrency}   122
\p{InCyrillic}   122
Index, Group object method   424
Index, Match object method   423
IndexOutOfBoundsException   384-385, 388
\p{InDingbats}   122
indispensable   TiVo 3
\p{InHangul_Jamo}   122
\p{InHebrew}   122
\p{Inherited}   122
initial class discrimination   244-246, 249, 251-252, 257-259, 332, 361
\p{Initial_Punctuation}   121
\p{InKatakana}   122
\p{InTamil}   122
integrated handling   94-95
integrated handling, compile caching   242
interpolation   288-289
interpolation, introduced   77
interpolation, caching   351
interpolation, mimicking   321
interpolation, in PHP   103
INTERSECTION   class set operations 124
interval   140
interval, introduced   20
interval, [X{0,0}]   140
\p{InTibetan}   122
IOException   81
IP example   5, 187-189, 267, 311, 314, 348-349
Iraq   11
Is vs. In   120, 122-123
Is vs. In, with java.util.regex   380
Is vs. In, in .NET   401
Is vs. In, in Perl   288
\p{IsCherokee}   120
\p{IsCommon}   122
\p{IsCyrillic}   120
\p{IsGujarati}   120
\p{IsHan}   120
\p{IsHebrew}   120
\p{IsHiragana}   120
\p{IsKatakana}   120
\p{IsLatin}   120
IsMatch (Regex object method)   415
ISO-8859-1 encoding   29, 87, 105, 107, 121
\p{IsThai}   120
\p{IsTibetan}   122
Japanese, text processing   29
“japhy”   246
Java   365-398
Java, benchmarking   234-236
Java, BLTN   235-236, 375
Java, choosing a regex package   366
Java, exposed mechanics   374
Java, fastest package   377
Java, JIT   235
Java, list of packages   372
Java, matching comments   272-276
Java, object models   368-372
Java, package flavor comparison   373
Java, “Perl5 flavors”   375
Java, strings   102
Java, version covered   91
Java, VM   234-236, 375
java.util.regex   95-96, 378-391
java.util.regex, after-match data   136
java.util.regex, code example   383, 389
java.util.regex, comparative description   372
java.util.regex, CSV parsing   386
java.util.regex, dot modes   111
java.util.regex, doubled-word example   81
java.util.regex, line anchors   128
java.util.regex, line terminators   382
java.util.regex, match modes   380
java.util.regex, object model   381
java.util.regex, regex flavor   378-381
java.util.regex, search-and-replace   387
java.util.regex, speed   377
java.util.regex, split   390
java.util.regex, URL parsing example   209
java.util.regex, version covered   91
java.util.regex, word boundaries   132
Jeffs example   61-64
JfriedlsRegexLibrary   428-429
JIT, Java   235
JIT, .NET   404
JRE   234
jregex   comparative description 374
\p{Katakana}   120, 122
keeping in sync   210-211
Keisler, H. J.   85
Kleene, Stephen   85
The Kleene Symposium   85
Korean text processing   29
Kunen, K.   85
\p{L&}   120-121, 123
\p{L&}, in Perl   288
\p{L}   119-120, 131, 380, 390
£   122
\l   290
\l, character class   10, 13
\l, identifiers   24
\p{Latin}   120
Latin-1 encoding   29, 87, 105, 107, 121
lazy   166-167
lazy, essence   159, 168-169
lazy, favors match   167-168
lazy, vs. greedy   169, 256-257
lazy, in Java   373
lazy, optimization   249, 256
lazy, quantifier   140
lazy evaluation   181, 355
\L...\E   290
\L...\E, inhibiting   292
lc   290
lcfirst   290
leftmost match   177-179
Length, Group object method   424
Length, Match object method   423
length()   ORO 396
length-cognizance optimization   245, 247
\p{Letter}   120, 288
\p{Letter_Number}   121
$LevelN   330, 343
lex   86
lex, $   111
lex, dot   110
lex, history   87
lex, and trailing context   182
lexer   building 130, 315
lexical scope   299
LF   109, 382
Li, Yadong   xxii
LIFO backtracking   159
limit, backtracking   237
limit, recursion   249-250
limit, recursion, line   (also see string)
limit, anchor optimization   246
limit, vs. string   55
line anchor   111-112
line anchor, mechanics of matching   150
line anchor, variety of implementations   87
line feed   109
LINE SEPARATOR   109, 121, 382
line terminators   108-109, 111, 128, 382
line terminators, with $ and ^   111
\p{Line_Separator}   121
link, matching   201
link, matching, Java   204, 209
list context   294, 310-311
list context, forcing   310
literal string   initial string discrimination 244-246, 249, 251-252, 257-259, 332, 361
literal text, introduced   5
literal text, exposing   255
literal text, mechanics of matching   149
literal text, pre-check optimization   244-246, 249, 251-252, 257-259, 332, 361
literal-text mode   112, 134-135, 290
literal-text mode, inhibiting   292
\p{Ll}   121, 400
\p{Lm}   121, 400
\p{Lo}   121, 400
local   296, 341
local, in embedded code   336
local, vs. my   297
locale   126
locale, overview   87
locale, \w   119
localizing   296-297
localtime   294, 319, 351
locking in regex literal   352
“A logical calculus of the ideas imminent in nervous activity”   85
longest match   finding 334-335
longest-leftmost match   148, 177-179
lookahead   132
lookahead, introduced   60
lookahead, auto   403
lookahead, example   61-64
lookahead, in Java   373
lookahead, mimic atomic grouping   174
lookahead, mimic optimizations   258-259
lookahead, negated, <B>...</B>   167
lookahead, positive vs. negative   66
lookaround, introduced   59
lookaround, backtracking   173-174
lookaround, in conditional   139
lookaround, and DFAs   182
lookaround, doesn't consume text   60
lookaround, mimicking class set operations   124
lookaround, mimicking word boundaries   132
lookaround, in Perl   288
lookbehind   132
lookbehind, in Java   373
lookbehind, in .NET   402
lookbehind, in Perl   288
lookbehind, positive vs. negative   66
lookbehind, unlimited   402
lookingAt()   385
Lord, Tom   182
\p{Lowercase_Letter}   121
LS   109, 121, 382
\p{Lt}   121, 400
\p{Lu}   121, 400
Lunde, Ken   xxii, 29
\p{M}   120, 125
/m   134
m/.../   introduced 38
machine-dependent character codes   114
MacOS   114
mail processing example   53-59
makudonarudo example   165, 169, 228-232, 264
\p{Mark}   120
match   306-318
match, actions   95
match, context   294-295, 309
match, context, list   294, 310-311
match, context, scalar   294, 310, 312-316
match, DFA vs. NFA   224
match, efficiency   179
match, example with backtracking   160
match, example without backtracking   160
match, lazy example   161
match, leftmost-longest   335
match, longest   334-335
match, m/.../, introduced   38
match, m/.../, introduced, mechanics   (also see: greedy; lazy)
match, m/.../, .*   152
match, m/.../, greedy introduced   151
match, m/.../, anchors   150
match, m/.../, capturing parentheses   149
match, m/.../, character classes and dot   149
match, m/.../, consequences   156
match, m/.../, literal text   149
match, modes   109-112
match, modes, java.util.regex   380
match, negating   309
match, neverending   222-228, 330, 340
match, neverending, avoiding   264-265
match, neverending, discovery   226-228
match, neverending, explanation   226-228
match, neverending, non-determinism   264
match, neverending, short-circuiting   250
match, neverending, solving with atomic grouping   268
match, neverending, solving with possessive quantifiers   268
match, NFA vs. DFA   156-157, 180-182
match, NFA vs. DFA, position   (see pos)
match, POSIX, in Perl   335
match, shortest-leftmost   183
match, side effects   317
match, side effects, intertwined   43
match, side effects, Perl   40
match, speed   181
match, in a string   27
match, tag-team   130
match, viewing mechanics   331-332
Match   Empty 426
match()   393
Match (.NET)   Success 96
Match object (.NET)   411
Match object (.NET), Capture   431
Match object (.NET), creating   415, 423
Match object (.NET), Groups   423
Match object (.NET), Index   423
Match object (.NET), Length   423
Match object (.NET), NextMatch   423
Match object (.NET), Result   423
Match object (.NET), Success   421
Match object (.NET), Synchronized   424
Match object (.NET), ToString   422
Match object (.NET), using   421
Match object (.NET), Value   422
Match (Regex object method)   415
“match rejected by optimizer”   363
match result object model   371
match state object model   370
MatchCollection   416
matcher() (Pattern method)   384
Matcher object   384
Matcher object, reusing   387
matches, unexpected   194-195
matches, viewing all   332
matches() (Pattern method)   384, 390
Matches (Regex object method)   416
MatchEvaluator   417-418
matching, delimited text   196-198
matching, HTML tag   200
matching, longest-leftmost   177-179
MatchObject object (.NET)   creating 416
\p{Math_Symbol}   121
Maton, William   xxii, 36
MBOL   362
\p{Mc}   121
McCloskey, Mike   xxii
McCulloch, Warren   85
\p{Me}   121
mechanics   viewing 331-332
metacharacter, introduced   5
metacharacter, conflicting   44-46
metacharacter, differing contexts   10
metacharacter, first-class   87, 92
metacharacter, vs. metasequence   27
metasequence   defined 27
mimic, $`   357
mimic, $'   357
mimic, $&   302, 357
mimic, atomic grouping   174
mimic, class set operations   124
mimic, conditional with lookaround   139
mimic, initial-character discrimination optimization   258-259
mimic, named capture   344-345
mimic, POSIX matching   335
mimic, possessive quantifiers   343-344
mimic, variable interpolation   321
mimic, word boundaries   66, 132, 341-342
minlen length   362
minus in character class   9
MISL   .NET 404
\p{Mn}   121
mode modifier   109, 133-135
mode-modified span   109, 134
modes   introduced with egrep 14-15
\p{Modifier_Letter}   121
\p{Modifier_Letter}, combining   69
\p{Modifier_Letter}, example with five   316
\p{Modifier_Letter}, /g   51
\p{Modifier_Letter}, /i   47
\p{Modifier_Letter}, “locking in”   304-305
\p{Modifier_Letter}, notation   98
\p{Modifier_Letter}, /osmosis   293
\p{Modifier_Letter}, Perl core   292-293
\p{Modifier_Letter}, with regex object   304-305
\p{Modifier_Symbol}   121
Mui, Linda   xxii
multi-character quotes   165-166
Multiline (.NET)   402, 413-414, 421
MULTILINE (Pattern flag)   81, 380, 382
multiple-byte character encoding   29
MungeRegexLiteral   342-344, 346
my, binding   339
my, in embedded code   338-339
my, vs. local   297
MySQL, after-match data   136
MySQL, DBIx::DWIW   258
MySQL, version covered   91
MySQL, word boundaries   132
\n   49, 114-115
\n, introduced   44
\n, machine-dependency   114
\p{N}   120, 390
(?n)   402
$^N   300-301, 344-346
named capture   137
named capture, mimicking   344-345
named capture, .NET   402
named capture, with unnamed capture   403
naughty variables   356
naughty variables, okay for debugging   331
\p{Nd}   121, 380, 400
negated class, introduced   10-11
negated class, and lazy quantifiers   167
negated class, Tcl   111
negated class, Tcl, negative lookahead   (see lookahead, negative)
negated class, Tcl, negative lookbehind   (see lookbehind, negative)
NEL   109, 382, 400
nervous system   85
nested constructs, .NET   430
nested constructs, Perl   328-331, 340-341
$NestedStuffRegex   339, 346
.NET   399-432
.NET, $+   202
.NET, flavor overview   91
.NET, after-match data   136
.NET, benchmarking   236
.NET, JIT   404
.NET, line anchors   128
.NET, literal-text mode   135
.NET, MISL   404
.NET, object model   411
.NET, regex approach   96-97
.NET, regex flavor   401
.NET, search-and-replace   408, 417-418
.NET, URL parsing example   204
.NET, version covered   91
.NET, word boundaries   132
neurophysiologists   early regex study 85
neverending match   222-228, 330, 340
neverending match, avoiding   264-265
neverending match, discovery   226-228
neverending match, explanation   226-228
neverending match, non-determinism   264
neverending match, short-circuiting   250
neverending match, solving with atomic grouping   268
neverending match, solving with possessive quantifiers   268
New Regex   96, 99, 410, 415
newline   and HTTP 115
NEXT LINE   109, 382, 400
NextMatch (Match object method)   423
NFA, first introduced   145
NFA, introduction   153
NFA, acronym spelled out   156
NFA, and alternation   174-175
NFA, compared with DFA   156-157, 180-182
NFA, control benefits   155
NFA, efficiency   179
NFA, efficiency, essence   (see backtracking)
NFA, freeflowing regex   277-281
NFA, and greediness   162
NFA, implementation ease   182
NFA, nondeterminism   265
NFA, nondeterminism, checkpoint   264
NFA, POSIX efficiency   179
NFA, testing for   146-147
NFA, theory   180
Nicholas, Ethan   xxii
\p{Nl}   121
\N{LATIN SMALL LETTER SHARP S}   290
\N{name}   290
\N{name}, inhibiting   292
\p{No}   121
no re 'debug'   361
no_match_vars   357
nomenclature   27
non-capturing parentheses   45, 136-137, 373
non-capturing parentheses, (also see parentheses), Nondeterministic Finite Automaton   (see NFA)
None (.NET)   415, 421
nonillion   226
nonregular sets   180
\p{Non_Spacing_Mark}   121
“normal”   262-266
null   116
null, with dot   118
NullPointerException   396
\p{Number}   120
/o   352-353
/o, with regex object   354
Obfuscated Perl Contest   320
object model, Java   368-372
object model, .NET   410-411
Object Oriented Perl   339
object-oriented handling   95-97
object-oriented handling, compile caching   244
octal escape   115, 117
octal escape, vs. backreference   406-407
octal escape, in Java   373
octal escape, in Perl   286
on-demand recompilation   351
oneself example   332, 334
\p{Open_Punctuation}   121
operators   Perl list 285
optimization   239-252
optimization, automatic possessification   251
optimization, BLTN   235-236, 375
optimization, with bump-along   255
optimization, end-of-string anchor   246
optimization, excessive backtrack   249-250
optimization, hand tweaking   252-261
optimization, implicit line anchor   191
optimization, initial character discrimination   244-246, 249, 251-252, 257-259, 332, 361
optimization, JIT   235, 404
optimization, lazy evaluation   181
optimization, lazy quantifier   249, 256
optimization, leading [.*]   246
optimization, literal-string concatenation   247
optimization, need cognizance   252
optimization, needless class elimination   249
optimization, needless parentheses   248
optimization, pre-check of required character   244-246, 249, 251-252, 257-259, 332, 361
optimization, simple repetition, discussed   247-248
optimization, small quantifier equivalence   251-252
optimization, state suppression   250-251
optimization, string/line anchors   149, 181
optimization, super-linear short-circuiting   250
Option (.NET)   409
Option (.NET), whitespace   18
Options (Regex object method)   421
OR   class set operations 123-124
Oram, Andy   xxii, 5
ordered alternation   175-177
ordered alternation, pitfalls   176
org.apache.oro.text.regex   392-398
org.apache.oro.text.regex, benchmark results   376
org.apache.oro.text.regex, comparative description   374
org.apache.regexp, comparative description   375
org.apache.regexp, speed   376
org.apache.xerces.utils.regex   372
ORO   392-398
ORO, benchmark results   376
ORO, comparative description   374
osmosis   293
/osmosis   293
\p{Other}   120
\p{Other_Letter}   121
\p{Other_Number}   121
\p{Other_Punctuation}   121
\p{Other_Symbol}   121
our   295, 336
overload pragma   342
\p{...}   119
\p{P}   120
\p{^...}   288
\p{All}   123
\p{All}, in Perl   288
\p{all}   380
panic: top_env   332
\p{Any}   123
\p{Any}, in Perl   288
Papen, Jeffrey   xxii
PARAGRAPH SEPARATOR   109, 121, 382
\p{Paragraph_Separator}   121
parentheses, as \(...\)   86
parentheses, and alternation   13
parentheses, balanced   328-331, 340-341, 430
parentheses, balanced, difficulty   193-194
parentheses, capturing   135-136, 300
parentheses, capturing, introduced with egrep   20-22
parentheses, capturing, and DFAs   150, 182
parentheses, capturing, mechanics   149
parentheses, capturing, in Perl   41
parentheses, capturing only   152
parentheses, counting   21
parentheses, elimination optimization   248
parentheses, elimination optimization, grouping-only   (see non-capturing parentheses)
parentheses, limiting scope   18
parentheses, named capture   137, 344-345, 402-403
parentheses, nested   328-331, 340-341, 430
parentheses, non-capturing   45, 136-137
parentheses, non-capturing, in Java   373
parentheses, non-participating   300
parentheses, with split, Java ORO   395
parentheses, with split, .NET   403, 420
parentheses, with split, Perl   326
\p{Arrows}   122
parsing   regex 404
participate in match   139
Pascal   36, 59, 182
Pascal, matching comments of   265
\p{Assigned}   123-124
\p{Assigned}, in Perl   288
Pat (Java Package), comparative description   374
Pat (Java Package), speed   377
patch   88
pathname example   190-192
Pattern, CANON_EQ   108, 380
Pattern, CASE_INSENSITIVE   95, 109, 380, 383
Pattern, COMMENTS   99, 218, 378, 380, 386
Pattern, compile()   383
Pattern, DOTALL   380, 382
Pattern, matcher()   384
Pattern, matches()   384, 390
Pattern, MULTILINE   81, 380, 382
Pattern, UNICODE_CASE   380, 383
Pattern, UNIX_LINES   380, 382
PatternSyntaxException   381, 383
\p{Basic_Latin}   122
\p{Box_Drawing}   122
\p{Pc}   121, 400
\p{C}   120
\p{Cc}   121
\p{Cf}   121
\p{Cherokee}   120
\p{Close_Punctuation}   121
\p{Cn}   121, 123-124, 380, 401
\p{Co}   121
\p{Connector_Punctuation}   121
\p{Control}   121
PCRE, lookbehind   132
PCRE, version covered   91
\p{Currency}   122
\p{Currency_Symbol}   121
\p{Cyrillic}   120, 122
\p{Pd}   121
\p{Dash_Punctuation}   121
\p{Decimal_Digit_Number}   121
\p{Dingbats}   122
\p{Pe}   121
PeakWebhosting.com   xxii
\p{Enclosing_Mark}   121
people, Aho, Alfred   86, 180
people, Balling, Derek   xxii
people, Barwise, J.   85
people, Bennett, Mike   xxi
people, Clemens, Sam   375
people, Click, Cliff   xxii
people, Constable, Robert   85
people, Conway, Damian   339
people, Cruise, Tom   51
people, Flanagan, David   xxii
people, Friedl, Alfred   176
people, Friedl, brothers   33
people, Friedl, Fumie   xxi
people, Friedl, Fumie, birthday   11-12
people, Friedl, Liz   33
people, Friedl, Stephen   xxii
people, George, Kit   xxii
people, Goldberger, Ray   xxii
people, Gosling, James   89
people, Gutierrez, David   xxii
people, Hietaniemi, Jarkko   xxii
people, Keisler, H. J.   85
people, Kleene, Stephen   85
people, Kunen, K.   85
people, Li, Yadong   xxii
people, Lord, Tom   182
people, Lunde, Ken   xxii, 29
people, Maton, William   xxii, 36
people, McCloskey, Mike   xxii
people, McCulloch, Warren   85
people, Mui, Linda   xxii
people, Nicholas, Ethan   xxii
people, Oram, Andy   xxii, 5
people, Papen, Jeffrey   xxii
people, Perl Porters   90
people, Pinyan, Jeff   246
people, Pitts, Walter   85
people, Purcell, Shawn   xxii
people, Reed, Jessamyn   xxii
people, Reinhold, Mark   xxii
people, Rudkin, Kristine   xxii
people, Savarese, Daniel   xxii
people, Sethi, Ravi   180
people, Spencer, Henry   88, 182-183, 243
people, Thompson, Ken   85-86, 110
people, Trapszo, Kasia   xxii
people, Tubby   264
people, Ullman, Jeffrey   180
people, Wall, Larry   88-90, 138, 363-364
people, Wilson, Dean   xxii
people, Woodward, Josh   xxii
people, Zawodny, Jeremy   xxii, 258
Perl, $/   35
Perl, flavor overview   91, 287
Perl, introduction   37-38
Perl, introduction, context   (also see match, context)
Perl, introduction, contorting   294
Perl, efficiency   347-363
Perl, greatest weakness   286
Perl, history   88-90, 308
Perl, in Java   375, 392
Perl, line anchors   128
Perl, modifiers   292-293
Perl, motto   348
Perl, option, -0   36
Perl, option, -c   361
Perl, option, -Dr   363
Perl, option, -e   36, 53, 361
Perl, option, -i   53
Perl, option, -M   361
Perl, option, -Mre=debug   363
Perl, option, -n   36
Perl, option, -p   53
Perl, option, -w   38, 296, 326, 361
Perl, regex operators   285
Perl, version covered   91
Perl, warnings   38
Perl, warnings, ($^W variable)   297
Perl, warnings, use warnings   326, 363
Perl Porters   90
Perl5Util   392, 396
perladmin   299
\p{Pf}   121, 400
\p{Final_Punctuation}   121
\p{Format}   121
\p{Gujarati}   120
\p{Han}   120
\p{Hangul_Jamo}   122
\p{Hebrew}   120, 122
\p{Hiragana}   120
PHP, after-match data   136
PHP, line anchors   128
PHP, lookbehind   132
PHP, mode modifiers   133
PHP, strings   103
PHP, version covered   91
PHP, word boundaries   132
\p{Pi}   121, 400
\p{InArrows}   122
\p{InBasic_Latin}   122
\p{InBox_Drawing}   122
\p{InCurrency}   122
\p{InCyrillic}   122
\p{InDingbats}   122
\p{InHangul_Jamo}   122
\p{InHebrew}   122
\p{Inherited}   122
\p{Initial_Punctuation}   121
\p{InKatakana}   122
\p{InTamil}   122
\p{InTibetan}   122
Pinyan, Jeff   246
\p{IsCherokee}   120
\p{IsCommon}   122
\p{IsCyrillic}   120
\p{IsGujarati}   120
\p{IsHan}   120
\p{IsHebrew}   120
\p{IsHiragana}   120
\p{IsKatakana}   120
\p{IsLatin}   120
\p{IsThai}   120
\p{IsTibetan}   122
Pitts, Walter   85
\p{Katakana}   120, 122
\p{L}   119-120, 131, 380, 390
\p{L&}   120-121, 123
\p{L&}, in Perl   288
\p{Latin}   120
\p{Letter}   120, 288
\p{Letter_Number}   121
\p{Line_Separator}   121
\p{Ll}   121, 400
\p{Lm}   121, 400
\p{Lo}   121, 400
\p{Lowercase_Letter}   121
\p{Lt}   121, 400
\p{Lu}   121, 400
plus, as \+   139
plus, introduced   18-20
plus, backtracking   162
plus, greedy   139
plus, lazy   140
plus, possessive   140
\p{M}   120, 125
\p{Mark}   120
\p{Math_Symbol}   121
\p{Mc}   121
\p{Me}   121
\p{Mn}   121
\p{Modifier_Letter}   121
\p{Modifier_Symbol}   121
\p{N}   120, 390
\p{Nd}   121, 380, 400
\p{Nl}   121
\p{No}   121
\p{Non_Spacing_Mark}   121
\p{Number}   120
\p{Po}   121
\p{Open_Punctuation}   121
population example   59
pos   128-131, 313-314, 316
pos, (also see \G), positive lookahead   (see lookahead, positive)
pos, (also see \G), positive lookbehind   (see lookbehind, positive)
POSIX, [:...:]   125
POSIX, [.....]   126
POSIX, Basic Regular Expressions   87-88
POSIX, bracket expressions   125
POSIX, character class   125
POSIX, character class and locale   126
POSIX, character equivalent   126
POSIX, collating sequences   126
POSIX, dot   118
POSIX, empty alternatives   138
POSIX, Extended Regular Expressions   87-88
POSIX, superficial flavor chart   88
POSIX, in Java   374
POSIX, locale   126
POSIX, locale, overview   87
POSIX, longest-leftmost rule   177-179, 335
POSIX NFA, backtracking example   229
POSIX NFA, testing for   146-147
possessive quantifiers   140, 172-173
possessive quantifiers, automatic   251
possessive quantifiers, for efficiency   259, 268-270
possessive quantifiers, example   198, 201
possessive quantifiers, mimicking   343-344
possessive quantifiers, optimization   250-251
postal code example   208-212
postMatch()   397
\p{Other}   120
\p{Other_Letter}   121
\p{Other_Number}   121
\p{Other_Punctuation}   121
\p{Other_Symbol}   121
£   122
\p{P}   120
\p{Paragraph_Separator}   121
\p{Pc}   121, 400
\p{Pd}   121
\p{Pe}   121
\p{Pf}   121, 400
\p{Pi}   121, 400
\p{Po}   121
\p{Private_Use}   121
\p{Ps}   121
\p{Punctuation}   120
pragma, charnames   290
pragma, overload   342
pragma, re   361, 363
pragma, strict   295, 336, 345
pragma, warnings   326, 363
pre-check of required character   244-246, 249, 251-252, 257-259, 361
pre-check of required character, mimic   258-259
pre-check of required character, viewing   332
preMatch()   397
pre-match copy   355
prepending filename to line   79
price rounding example   51-52, 167-168
price rounding example, with alternation   175
price rounding example, with atomic grouping   170
price rounding example, with possessive quantifier   169
Principles of Compiler Design   180
printf   40
private vs. global   Perl variables 295
\p{Private_Use}   121
procedural handling   95-97
procedural handling, compile caching   243
procmail   94
procmail, version covered   91
Programming Perl   283, 286, 339
promote   294-295
properties   119-121, 123-124, 288, 380
\p{S}   120
PS   109, 121, 382
\p{Ps}   121
\p{Sc}   121-122
\p{Separator}   120
\p{Sk}   121
\p{Sm}   121
\p{So}   121
\p{Space_Separator}   121
\p{Spacing_Combining_Mark}   121
\p{Symbol}   120
\p{Tamil}   122
\p{Thai}   120
\p{Tibetan}   122
\p{Titlecase_Letter}   121
publication, Bulletin of Math. Biophysics   85
publication, Communications of the ACM   85
publication, Compilers -- Principles, Techniques, and Tools   180
publication, Embodiments of Mind   85
publication, The Kleene Symposium   85
publication, “A logical calculus of the ideas imminent in nervous activity”   85
publication, Object Oriented Perl   339
publication, Principles of Compiler Design   180
publication, Programming Perl   283, 286, 339
publication, Regular Expression Search Algorithm   85
publication, “The Role of Finite Automata in the Development of Modern Computing Theory”   85
\p{Unassigned}   121, 123
\p{Unassigned}, in Perl   288
\p{Punctuation}   120
\p{Uppercase_Letter}   121
Purcell, Shawn   xxii
Python, after-match data   136
Python, benchmarking   237
Python, line anchors   128
Python, mode modifiers   133
Python, regex approach   97
Python, strings   103-104
Python, version covered   91
Python, word boundaries   132
Python, \Z   111
\p{Z}   119-120, 380, 400
\p{Zl}   121
\p{Zp}   121
\p{Zs}   121
Qantas   11
\Q...\E   290
\Q...\E, inhibiting   292
\Q...\E, in Java   373
qed   85
qed, introduced   76
qed, introduced, quantifier   (also see: plus; star; question mark; interval; lazy; greedy; possessive quantifiers)
qed, and backtracking   162
qed, factor out   255
qed, grouping for   18
qed, multiple levels   265
qed, optimization   247, 249
qed, and parentheses   18
qed, possessive quantifiers   140, 172-173
qed, possessive quantifiers, for efficiency   259, 268-270
qed, possessive quantifiers, mimicking, mimicking   343-344
qed, possessive quantifiers, optimization, optimization   250-251
qed, possessive quantifiers, automatic, automatic   251
qed, question mark, as \?   139
qed, question mark, introduced   17-18
qed, question mark, backtracking   160
qed, question mark, greedy   139
qed, question mark, lazy   140
qed, question mark, possessive   140
qed, smallest preceding subexpression   29
question mark, as \?   139
question mark, backtracking   160
question mark, greedy   139
question mark, lazy   140
question mark, possessive   140
question mark, possessive, quoted string   (see double-quoted string example)
quotes   multi-character 165-166
r"..."   103
$^R   302, 327
\r   49, 114-115
\r, machine-dependency   114
re   361
re 'debug'   363
re pragma   361, 363
reality check   226-228
red dragon   180
Reed, Jessamyn   xxii
Reflection   429
regex, balancing needs   186
regex, compile   179-180, 350
regex, default   308
regex, delimiters   291-292
regex, delimiters, DFA   (see DFA)
regex, delimiters, encapsulation   (see regex objects)
regex, engine analogy   143-147
regex, vs. English   275
regex, frame of mind   6
regex, freeflowing design   277-281
regex, history   85-91
regex, library   76, 207
regex, longest-leftmost match   177-179
regex, longest-leftmost match, shortest-leftmost   183
regex, mechanics   241-242
regex, mechanics, NFA   (see NFA)
regex, nomenclature   27
regex, operands   288-292
regex, overloading   291, 328
regex, overloading, inhibiting   292
regex, overloading, problems   344
regex, subexpression, defined   29
regex literal   288-292, 307
regex literal, inhibiting processing   292
regex literal, locking in   352
regex literal, parsing of   292
regex literal, processing   350
regex literal, regex objects   354
Regex (.NET), CompileToAssembly   427, 429
Regex (.NET), creating, options   413-415
Regex (.NET), Escape   427
Regex (.NET), GetGroupNames   421-422
Regex (.NET), GetGroupNumbers   421-422
Regex (.NET), GroupNameFromNumber   421-422
Regex (.NET), GroupNumberFromName   421-422
Regex (.NET), IsMatch   407, 415, 425
Regex (.NET), Match   96, 408, 410, 415, 425
Regex (.NET), Matches   416, 425
Regex (.NET), object, creating   96, 410, 413-415
Regex (.NET), object, exceptions   413
Regex (.NET), object, using   96, 415
Regex (.NET), Options   421
Regex (.NET), Replace   408-409, 417-418, 425
Regex (.NET), RightToLeft   421
Regex (.NET), Split   419-420, 425
Regex (.NET), ToString   421
Regex (.NET), Unescape   427
regex objects   303-306
regex objects, efficiency   353-354
regex objects, /g   354
regex objects, match modes   304-305
regex objects, /o   354
regex objects, in regex literal   354
regex objects, viewing   305-306
regex overloading   292
regex overloading, example   341-345
http://regex.info/   xxii, 7, 345, 358
RegexCompilationInfo   429
regex-directed matching   153
regex-directed matching, and backreferences   303
regex-directed matching, and greediness   162
Regex.Escape   135
RegexOptions, Compiled   236, 402, 404, 414, 421-422, 429
RegexOptions, ECMAScript   400, 402, 406-407, 415, 421
RegexOptions, ExplicitCapture   402, 414, 421
RegexOptions, IgnoreCase   96, 99, 402, 413, 421
RegexOptions, IgnorePatternWhitespace   99, 402, 413, 421
RegexOptions, Multiline   402, 413-414, 421
RegexOptions, None   415, 421
RegexOptions, RightToLeft   402, 405-406, 414, 420-421, 423-424
RegexOptions, Singleline   402, 414, 421
Regexp (Java package), comparative description   375
Regexp (Java package), speed   376
regsub   100
regular expression   origin of term 85
Regular Expression Search Algorithm   85
regular sets   85
Reinhold, Mark   xxii
removing whitespace   199-200
Replace (Regex object method)   417-418
replaceAll   387
replaceFirst()   387-388
reproductive organs   5
required character pre-check   244-246, 249, 251-252, 257-259, 332, 361
re-search-forward   100
reset()   387
Result (Match object method)   423
RightToLeft   (Regex property) 421-422
RightToLeft (.NET)   402, 405-406, 414, 420-421, 423-424
“The Role of Finite Automata in the Development of Modern Computing Theory”   85
Ruby, $ and ^   111
Ruby, after-match data   136
Ruby, benchmarking   238
Ruby, \G   131
Ruby, line anchors   128
Ruby, mode modifiers   133
Ruby, version covered   91
Ruby, word boundaries   132
Rudkin, Kristine   xxii
rule, earliest match wins   148-149
rule, standard quantifiers are greedy   151-153
rx   182
s/.../.../   50, 318-321
\S   49, 56, 119
\p{S}   120
\s   49, 119
\s, introduction   47
\s, in Emacs   127
\s, in Perl   288
\s, in Perl, (?s)   (see: dot-matches-all mode; mode modifier)
/s   134
Savarese, Daniel   xxii
SawAmpersand   358
say what you mean   195, 274
SBOL   362
\p{Sc}   121-122
scalar context   294, 310, 312-316
scalar context, forcing   310
schaffkopf   33
scope   lexical vs. dynamic 299
scripts   120-122, 288
search-and-replace, awk   99
search-and-replace, Java   387, 394
search-and-replace, .NET   408, 417-418
search-and-replace, Tcl   100
sed, after-match data   136
sed, dot   110
sed, history   87
sed, version covered   91
sed, word boundaries   132
\p{Separator}   120
server VM   234, 236, 375
Sethi, Ravi   180
shell   7
simple quantifier optimization   247-248
single quotes   delimiter 292, 319
Singleline (.NET)   402, 414, 421
\p{Sk}   121
\p{Sm}   121
small quantifier equivalence   251-252
\p{So}   121
\p{Space_Separator}   121
\p{Spacing_Combining_Mark}   121
“special”   262-266
Spencer, Henry   88, 182-183, 243
split()   java.util.regex 390
split   ORO 394-396
split, with capturing parentheses, Java ORO   395
split, with capturing parentheses, .NET   403, 420
split, with capturing parentheses, Perl   326
split, chunk limit, Java ORO   395
split, chunk limit, java.util.regex   391
split, chunk limit, Perl   323
split, into characters   322
split, in Perl   321-326
split, trailing empty items   324
split, whitespace   325
Split (Regex object method)   419-420
standard formula for matching delimited text   196
star, introduced   18-20
star, backtracking   162
star, greedy   139
star, lazy   140
star, possessive   140
start()   385
start-of-string anchor optimization   245-246, 255-256, 315
stclass `list'   362
stock pricing example   51-52, 167-168
stock pricing example, with alternation   175
stock pricing example, with atomic grouping   170
stock pricing example, with possessive quantifier   169
Strict (Option)   409
strict pragma   295, 336, 345
String, matches()   384
String, replaceAll   387
String, replaceFirst()   388
String, split()   390
String, split(), string   (also see line)
String, split(), double-quoted   (see double-quoted string example)
String, initial string discrimination   244-246, 249, 251-252, 257-259, 332, 361
String, vs. line   55
String, vs. line, match position   (see pos)
String, vs. line, pos   (see pos)
StringBuffer   388
strings, C#   102
strings, Emacs   100
strings, Java   102
strings, PHP   103
strings, Python   103-104
strings, as regex   101-105, 305
strings, Tcl   104
strings, VB.NET   102
stripping whitespace   199-200
study   359-360
study, when not to use   359
subexpression   defined 29
substitute()   394
substitution, delimiter   319
substitution, s/.../.../   50, 318-321
substring   initial substring discrimination 244-246, 249, 251-252, 257-259, 332, 361
subtraction   class set operations 124
Success, Group object method   424
Success, Match object method   421
Success, Match object method, Sun's regex package   (see java.util.regex)
Success, Match object method, super-linear   (see neverending match)
super-linear short-circuiting   250
\p{Symbol}   120
Synchronized Match object method   424
syntax class   Emacs 127
System.currentTimeMillis()   236
System.Reflection   429
System.Text.RegularExpressions   407, 409
\t   49, 114-115
\t, introduced   44
tag   matching 200-201
tag-team matching   130, 315
\p{Tamil}   122
Tcl, [:<:]   92
Tcl, flavor overview   91
Tcl, benchmarking   239
Tcl, dot   111-112
Tcl, hand-tweaking   243, 259
Tcl, line anchors   112, 128
Tcl, mode modifiers   133
Tcl, regex implementation   182
Tcl, regsub   100
Tcl, search-and-replace   100
Tcl, strings   104
Tcl, version covered   91
Tcl, word boundaries   132
temperature conversion example, in .NET   419
temperature conversion example, in Java   389
temperature conversion example, in Perl   37
temperature conversion example, Perl one-liner   283
temperature conversion example, Perl one-liner, terminators   (see line terminators)
testing engine type   146-147
text-directed matching   153
text-directed matching, regex appearance   162
text-to-HTML example   67-77
\p{Thai}   120
theory of an NFA   180
There's more than one way to do it   349
this|that example   132, 138, 243, 245-246, 252, 255, 260-261
Thompson, Ken   85-86, 110
thread scheduling   Java benchmarking 236
\p{Tibetan}   122
tied variables   299
time()   232
time of day   26
Time::HiRes   232, 358, 360
Time.new   238
Timer()   237
title case   109
\p{Titlecase_Letter}   121
TiVo   3
tokenizer   building 130, 315
toothpicks   scattered 100
tortilla   126
ToString, Group object method   424
ToString, Match object method   422
ToString, Regex object method   421
toString   ORO 396
Traditional NFA   testing for 146-147
trailing context   182
trailing context, optimizations   245-247
Trapszo, Kasia   xxii
Tubby   264
typographical conventions   xix
\u   116, 290, 400
\U   116
\U...\E   290
\U...\E, inhibiting   292
uc   290
U+C0B5   106
ucfirst   290
UCS-2 encoding   106
UCS-4 encoding   106
Ullman, Jeffrey   180
\p{Unassigned}   121, 123
\p{Unassigned}, in Perl   288
unconditional caching   350
underscore in \w   history 89
Unescape   427
Unicode, overview   106-108
Unicode, block   122
Unicode, block, Java   380
Unicode, block, .NET   400
Unicode, block, Perl   288
Unicode, block, Perl, categories   (see Unicode, properties)
Unicode, character, combining   107, 122, 125, 288
Unicode, code point, introduced   106
Unicode, code point, beyond U+FFFF   108
Unicode, code point, multiple   107
Unicode, code point, unassigned in block   122
Unicode, combining character   107, 122, 125, 288
Unicode, in Java   380
Unicode, line terminators   108-109, 111
Unicode, line terminators, in Java   382
Unicode, line terminators, in Java, loose matching   (see case-insensitive mode)
Unicode, in .NET   401
Unicode, properties   119, 288
Unicode, properties, java.util.regex   380
Unicode, properties, list   120-121
Unicode, properties, \p{All}   123, 288
Unicode, properties, \p{Any}   123, 288
Unicode, properties, \p{Assigned}   123-124, 288
Unicode, properties, \p{Unassigned}   121, 123, 288
Unicode, script   120-122, 288
Unicode, support in Java   373
Unicode, Version 3.1   108, 380, 401
Unicode, Version 3.2   288
Unicode, whitespace and /x   288
UNICODE_CASE (Pattern flag)   380, 383
UnicodeData.txt   290
unicore   290
UNIX_LINES (Pattern flag)   380, 382
unmatch   152, 161, 163
unmatch, .*   165
unmatch, atomic grouping   171
unrolling the loop   261-276
unrolling the loop, example   270-271
unrolling the loop, general pattern   264
\p{Uppercase_Letter}   121
URL encoding   320
URL example   74-77, 201-204, 208, 260, 303-304, 306, 320
URL example, egrep   25
URL example, Java   209
URL example, plucking   205-208
use charnames   290
use Config   290, 299
use English   357
use overload   342
use re   361, 363
use re 'debug'   361, 363
use re 'eval'   337
use strict   295, 336, 345
use Time::HiRes   358, 360
use warnings   326, 363
username example   73, 76, 98
username example, plucking from text   71-73
username example, in a URL   74-77
using System.Text.RegularExpressions   410
UTF-16 encoding   106
UTF-8 encoding   106
\V   364
\v   114-115, 364
Value, Group object method   424
Value, Match object method   422
variable names example   24
variables, after match, pre-match copy   355
variables, binding   339
variables, fully qualified   295
variables, interpolation   344
variables, naughty   356
variables, tied   299
variables, tied, VB.NET   (also see .NET)
variables, comments   99
variables, regex approach   96-97
variables, strings   102
variables, URL parsing example   204
verbatim strings   102
Version 7 regex   182
Version 8 regex   182
versions covered in this book   91
vertical tab   109
vertical tab, in Perl \s   288
vi   after-match data 136
Vietnamese text processing   29
virtual machine   234-236, 375
Visual Studio .NET   428
VM   234, 236, 375
VM, warming up   235
void context   294
VT   109
\W   49, 119
$^W   297
\w   49, 65, 119
\w, in Emacs   127
\w, many different interpretations   93
\w, in Perl   288
Wall, Larry   88-90, 138, 363-364
warming up Java VM   235
warnings   296
warnings, temporarily turning off   297
warnings pragma   326, 363
while vs. foreach vs. if   320
whitespace, allowing optional   18
whitespace, removing   199-200
wildcards   filename 4
Wilson, Dean   xxii
Woodward, Josh   xxii
word anchor   mechanics of matching 150
word boundaries   131
word boundaries, \<...\>, egrep   15
word boundaries, introduced   15
word boundaries, in Java   373
word boundaries, many programs   132
word boundaries, mimicking   66, 132, 341-342
word boundaries, in Perl   132, 288
www.cpan.org   358
www.PeakWebhosting.com   xxii
www.regex.info   358
\X   107, 125
\x   116, 400
\x, in Perl   286
\x, in Perl, (?x)   (see: comments and free-spacing mode; mode modifier)
/x   134, 288
/x, introduced   72
/x, history   90
Xerces   org.apache.xerces.utils.regex 372
-y   old grep 86
¥   122
Yahoo!   xxi, 74, 130, 190, 205, 207, 258, 314
\z   111, 127-128, 316
\z, in Java   373
\z, optimization   246
\Z   111, 127-128
\Z, in Java   373
\Z, optimization   246
\p{Z}   119-120, 380, 400
Zawodny, Jeremy   xxii, 258
ZIP code example   208-212
\p{Zl}   121
\p{Zp}   121
\p{Zs}   121