On Fri, 29 Sep 2000 00:29:31 +0100, Hugo wrote: >:I originally had thought of providing a separate, dedicated regex >:modifier, just for the match prefix, but I don't think too many people >:need this that desperately. You can easily build a working application >:with just the '/z' modifier. If you can't, you're in over your head, >:anyway. ;-) > >I don't understand this paragraph. I'll have to rework this into plain English. Look, I think it would be cool if there were a special modifier, let's call it '/p', that allows a regex to succeed not only if the whole regex matches, but also if it only matches a prexi, so: $pat = '\d+\.?\d*(?:E[+-]?\d+)?'; for('1234E', '1234EE') { if(/^$pat$/p) { print "Found a prefix in '$_'!\n"; } else { print "'$_' does not look acceptable\n"; } } That this would say "yes" to "1234E", but no to "1234EE". "1234E" can be a prefix for "1234E-2", for example, while "1234EE" cannot possibly made to match, whatever you append. Now, basically, the regex engine HAS the built-in possibility to return this: adding such a modifier wouldn't be too hard a work, I would think. All you need to do is check lookahead: if it ever bumps into the end of the string, this thing is a prefix. But, as I wrote in the RFC, this detecting a prefix is just a part of a grander picture: detecting when we have "sufficient data" to do a reliable match, when processing data in chunks. We also need to know how much of the old data we need to keep, in case we need to append more data. I admit, my current attempt is not too successful with regards to //gc. I tried to make the impact on the current language minimal, while providing this extra power. Perhaps I need a more elaborate effect. Setting a new special variable would be the easy way out, but I'm not in favour of it. p.s. I often wondered why pos() is not just a special variable. That would make more sense, I think, from a user POV, than making it a special function. -- Bart.