Mastering Regular Expressions

Errata for Mastering Regular Expressions

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed
Page 39
bottom of the page

As it turns out (at least on some systmes), Perl's simple print is sometimes not... should be: As it turns out (at least on some systems), Perl's simple print is sometimes not... p40, IN PRINT: second paragraph; "The is are now much nicer " SHOULD BE: "The result is now much nicer " p51, IN PRINT: 2nd paragraph above letter to Tom Cruise; "... each substitution to replacements them all, not just one. " SHOULD BE: "... each substitution to replace them all, not just one. " p58, IN PRINT: line 3; "print "From: Jeffrey Friedl <jfriedl@regex.info> "; " SHOULD BE "print "From: jfriedl@regex.info (Jeffrey Friedl) "; " p63, IN PRINT: Figure 2-7; Matched while checking lookahead Result of lookahead SHOULD BE: Matched while checking lookbehind Result of lookbehind p63, IN PRINT: Table 2-1, 3rd row; "...at which a comma is inserted. " SHOULD BE: "...at which an apostrophe is inserted. " p79, IN PRINT: First sentence of (5); "...marked all the doubled words, we want keep only logical... " SHOULD BE: "...marked all the doubled words, we want to keep only logical... " p80, IN PRINT: third paragraph; "Still, the task of showing the concepts is made a bit easier due to a unique feature of Perl among advanced languages that regular expressions are a "first class," low-level feature of the language. " SHOULD BE: "Still, the task of showing the concepts is made a bit easier due to a Perl feature unique among advanced languages, which is that regular expressions are a "first class", low-level feature of the language. " p84, IN PRINT: last sentence of second paragraph; "...next chapter is devoted to it. " SHOULD BE: "...next chapter is devoted to them. "

Anonymous   
Printed
Page 88
4th para

Printed: which could be freely incorporate by others Fixed: which could be freely incorporated by others

Anonymous   
Printed
Page 94
last paragraph; In the second sentence beginning with "An integrated approach",

the phrase "some of mechanics" should be "some of the mechanics". p97, IN PRINT: first paragraph; "each was just chosen by the developers who happened to have thought was the best approach at the time " SHOULD BE: "each was just chosen by the developers who thought it was the best approach at the time. p113, IN PRINT: toward bottom of 2nd section; [.span-ll.]]> SHOULD BE: [.span-ll.]] p114, IN PRINT: 2nd-to-last para; "... some of the control shorthands they... " SHOULD BE: "... some of the character shorthands they... " p123, IN PRINT: 2nd-to-last para; "...may seem a bit odd a first... " SHOULD BE: "...may seem a bit odd at first... " p135, IN PRINT: first para; "turns `C:\WINDOWS\' into `C:\\WINDOWS\\' " SHOULD BE: "turns `C:\WINDOWS\' into `C\:\\WINDOWS\\' " AUTHOR'S NOTE: This changes makes the statement technically correct, at the cost of slighly muddling the point. p136, table, 2nd row The table should note that GNU Emacs supports, within the replacement string, \& to represent the text of the entire match, and \1, \2, etc. for parenthesized submatches.

Anonymous   
Printed
Page 138
IN PRINT: 6th paragraph, under Conditional, last sentence in parentheses

"The else part my be..." SHOULD BE: "The else part may be..." p139, 3rd-last-para Printed: can used as the if test. Fixed: can be used as the if test. p160, first line Printed: Let's look a simple example Fixed: Let's look at a simple example p165, last paragraph before heading Printed: Actually, there's could be... Fixed: Actually, there could be...

Anonymous   
Printed
Page 173
2nd paragraph

The incorrect atomic grouping regex is currently (?>\"|[^"])*+ but it should be (?>\"|[^"])* (the last + should be removed). Additionally, "as if" in the second to last sentence should be "like".

Anonymous   
Printed
Page 176
1st paragraph, 3rd sentence

"...and it is invariably a mistake." should be: "...and it is invariably a mistake when used with a Traditional NFA." 197 boxed text reads: 2x"3" should be: 2x"3"

Anonymous   
Printed
Page 201
IN PRINT: Last sentence, 2nd paragraph

"...could case a very rude surprise..." SHOULD BE: "...could cause a very rude surprise..."

Anonymous   
Printed
Page 212
2nd paragraph

IN PRINT: @zips = m/G(?:(?!44)ddddd)*(44dddd)/g; SHOULD BE: @zips = m/G(?:(?!44)ddddd)*(44ddd)/g; The expression (44dddd) is a six-digit expression. You need a five-digit expression to stay in sync with the string of five-digit zip codes, and to capture the zip codes correctly. p226, 2nd para Printed: This is a big savings. Fixed: This is big savings.

Anonymous   
Printed
Page 228
IN PRINT: 1st paragraph, 2nd line

"...performance of a regex like can tell you..." SHOULD BE: "...performance of a regex like this can tell you..." p232, first bullet Printed: ...or other setup that must done, do it before... Fixed: ...or other setup that must be done, do it before... p240, footnote Printed: For example, I might insert in at the marked... Fixed: For example, I might insert it at the marked... p244, last line Printed: (which is fast way to search... Fixed: (which is a fast way to search... p246, fourth line Printed: Similar optimizations involves A, ... Fixed: Similar optimizations involve A, ... p280, mid-page Printed: match: 1> at the very start... Fixed: match: 1) at the very start... p305, last code snippet Printed: perl -e 'print qr/ w+ /x, " "' Fixed: perl -e 'print qr/ w+ /ix, " "'

Anonymous   
Printed
Page 320
2nd-to-last para

Printed: Normally, the replacement operator is evaluated... Fixed: Normally, the replacement operand is evaluated...

Anonymous   
Printed
Page 321
6th paragraph

"That example splits the target string on a single character, but it you can split on..." should read: "...but you can split it on..." p325, first bullet point Printed: ("s", "h", "o", &bigmidddot, "s", "t") Fixed: ("s", "h", "o", ..., "s", "t") p325, second bullet point Printed: It's almost the same as s+, except that leading whitespace is skipped. Trailing whitespace is ignored as well if an appropriately large (or negative) chunk-limit operand is given. Fixed: It's almost the same as s+, except that leading whitespace is skipped. p339, 2nd-to-last paragraph Printed: ...Programming Perl and Object Oriented Perl show discuss why... Fixed: ...Programming Perl and Object Oriented Perl discuss why...

Anonymous   
Printed
Page 340
IN PRINT: 2nd paragraph, last sentence

"...skeleton the expression:" SHOULD BE: "...skeleton of the expression:" p341, fifth line Printed: Adding these items to skeleton expression gives us: Fixed: Adding these items to the skeleton expression gives us: p351, first line Printed: Not all regex operands can be cached. Consider this snippet: Fixed: Not all regex operands can be cached directly. Consider this snippet: p359, mid-page Printed: ...is found. On most systems, ... Fixed: ...is found. (On most systems, ... p371, last line of code snippet Printed: .findNext(); (3) , (5) Fixed: .findNext(); // (3) , (5)

Anonymous   
Printed
Page 400
end of first para.

Should be a full stop not a comma. p407, fifth paragraph Printed: The following examples all which work with... Fixed: The following examples all work with... p408, mid-page snippets Three occurances of "Subject" within a quoted string are italicized. They shouldn't be.

Anonymous   
Printed
Page 416
last para

Printed: ...dispense with the MatchCollection variable altogether Fixed: ...dispense with the MatchCollection object altogether 417, ".Replace" example Printed: Text = R_CapWord.Replace(Text, "<B>$1</B>") Fixed: Text = R_CapWord.Replace(Text, "<B>$0</B>") 424, 2nd to last para Printed: ..where in the target text the match was found. Fixed: ..where in the target text the group match was found.

Anonymous