Hi, I've been using Boost regexp library forever, and it's great. But I just grabbed 1.33.0 (trying to get it to compile on 64-bit Windows), and I'm getting an error I never got before: it refuses to allow this regular expression: [a-z-] which is supposed to mean "a lower case letter or a dash". Previous versions of Boost regexp allowed this, and grep allows it, and version 1.33.0 does allow this one: [-a-z] Is this a deliberate restriction? It's causing me lots of problems, because my application has a lot of existing regular expressions which use this syntax. This occurs both on x64 with VC8, and on a pretty standard (and old) 32-bit Linux system. I've hacked around it horribly for now by adding this to the top of regcompA (I use the A posix interface exclusively): // HACK by GMF to fix problem that [a-z-] is not accepted as valid, but [-a-z] is. Fix it by moving the dash. char *p = (char*) ptr; while (*p) { printf("p: %c\n", *p); if (*p == '\\') p++; else if (*p == '[') { char *q = p+1; while (*q && (*q != ']')) { printf("*q: %c\n", *q); q++; } if (*q == ']') { q--; if (*q == '-') { memmove(p+2, p+1, (q-p)-1); *(p+1) = '-'; p = q; } } } p++; } but that's very nasty, and probably doesn't work properly anyway, and I'd sure like to get that out of my production code. Help! Greg