Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2004-05-12 05:29:43


> Regular expressions "[\u]" and "\u", unlike "[[:upper:]]", will not match
any letters when the icase flag is set. Similarly, "\U" will match
anything. Expressions "\l" and "\L" seem to be fine due to the
lower_case_map[] translation.
>
> My suggestion would be to replace
>
> classes.push(traits_type::char_class_upper);
>
> and the like by
>
> classes.push((_flags & regex_constants::icase) ?
> traits_type::char_class_alpha :
> traits_type::char_class_upper);
>
> in the 'syntax_u/U/l/L' cases in set_compile() and set_expression(). This
approach is currently taken in the 'syntax_open_set' case in set_compile().
>
> John may have a different fix in mind, though. :-)

Thanks, I'm actually in the process of rewriting all the expression parsing
code, so yes the fix will be different, although for the time being, I'll
commit the fix you suggested.

John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk