Hello,

I have a regex bug in following conditions: users pass a series of regex formats (strings) from which I create regex engines later used for lexing. To ensure matching at start of (rest of) source, I prefix each format with '^'. Right in most cases. But the following regex:
        `^(true)|(false)`
matches "false" anywhere in text ==> bug. Is this normal? There is a kind of ambiguity here, isn't there?

As a workaround, I replaced:
        this.engine = Regex("^" ~ form);
by
        this.engine = Regex(format("^(%s)", form));
And indeed
        `^((true)|(false))`
does not match "false" anywhere else as at start of source.

Comments?

Denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to