On Fri, 22 Jun 2007, Marc Perkel wrote: > I see what you're saying. But in this case the matching string I'm > looking for is usually on the end of the string. So in my case searching > backwards would be faster?
No. If you want to know in detail how this kind of regex works, look at Jeffrey Friedl's book "Mastering Regular Expressions". But I guess I can spell this one out. Consider abcd.abcd.yahoo.com With .* it counts its way through to the end of the string. Then it goes backwards character by character, looking for . and the checking for .yahoo. In this case, it has to go back 10 characters. With .*? it looks for .yahoo. at the start, then at the second character, etc. This avoids the counting through to the end and the backtracking. (And in that example, it turns out also to be 10 attempts.) Yes, of course, in this case it's not actually a big deal either way. And in the cases where it does not match, it still has to check at every position. That's how regexs work. -- Philip Hazel University of Cambridge Computing Service Get the Exim 4 book: http://www.uit.co.uk/exim-book -- ## List details at http://www.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://www.exim.org/eximwiki/
