Skip to content
Prev 30820 / 63424 Next

gregexpr - match overlap mishandled (PR#13391)

Full_Name: Reid Thompson
Version: 2.8.0 RC (2008-10-12 r46696)
OS: darwin9.5.0
Submission from: (NULL) (129.98.107.177)


the gregexpr() function does NOT return a complete list of global matches as it
should.  this occurs when a pattern matches two overlapping portions of a
string, only the first match is returned.

the following function call demonstrates this error (although this is not how I
initially discovered the problem):
gregexpr("11221122", paste(rep("1122", 10), collapse=""))

instead of returning 9 matches as one would expect, only 5 matches are returned
. . .

[[1]]
[1]  1  9 17 25 33
attr(,"match.length")
[1] 8 8 8 8 8

you will note, essentially, that the entire first match is then excluded from
subsequent matching