In article , Andreas Röhler wrote: > Barry Margolin wrote: > > In article , > > Matthew Dempsky wrote: > > > >> On Mon, Dec 7, 2009 at 12:37 PM, Andreas Röhler > >> wrote: > >>> Why should questioned string respond here it contains an empty string at > >>> position 0? > >>> Makes no sense for me. > >> Here's an analogy: (string-match "xyzzy" "fooxyzzybar") returns 3. > >> This is because the first 5 characters starting at position 3 are > >> "xyzzy", the same as the first string parameter. The significance of > >> 5 here is the length of "xyzzy". > >> > >> Similarly, (string-match "" "foo") returns 0. This is because the > >> first 0 characters starting at position are "", the same as the first > >> string parameter. > > > > Here's another example of a limit case: > > > > (string-match "a*" "b") returns 0, because a* matches zero or more a's, > > and there are zero a's at position 0. > > > > Hmm, interesting > > IMHO that differs: > > (string-match "a*" "b") asks for a non-occurrence too. So "0" of first > position is plausible. What's the difference between a non-occurrence and a zero-length occurrence? The nice thing about regular expressions is that the following syllogism holds: If (string-match (concat regex1 regex2) (concat str1 str2)) then (and (string-match regex1 str1) (string-match regex2 str2)) You need the empty regex case to work for the limiting case of this. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** *** PLEASE don't copy me on replies, I'll read them in the group ***