JDevlieghere added a comment. In D66174#1631055 <https://reviews.llvm.org/D66174#1631055>, @labath wrote:
> I was unhappy with the `()` workaround, so I did some investigation. Now, I > am even more unhappy, but at least better educated. :P > > Basically, what I've learned is that according to POSIX > https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html an > empty string is not a valid regular expression. Most tools seem to ignore > that, and treat it as if it matches everything (and I can't say I blame > them). However, the BSD implementation (that the llvm stuff is based on) > tried to do a strict implementation and it rejects that as an invalid > expression. > > Funnily enough, `()` is not valid according to POSIX either, but the BSD > implementation accepts it. So does (linux) grep and python. However, perl > rejects it (it still considers it a valid expression, but one that doesn't > match anything). > > `a||b` (a OR empty pattern OR b) is also not valid. grep, python and perl > accept that, but the BSD regexes don't. > > So, overall, it seems to me that there is a lot of confusion about what > should empty (sub-)patterns do. I don't think special-casing "" in > lldb_private::RegularExpression would help alleviate any of that confusion as > we would be still left with all of the other inconsistencies. So, if we want > to go through with this (and I still think we should), I guess we'll just > have to bite the bullet and say that our expressions are now (more or less) > POSIX conformant, and repeat that to anyone who comes complaining that lldb > regexes behave differently than grep, python or older versions of lldb... For the record, in case my earlier response gets lost in the inline comments, I strongly support this :-) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D66174/new/ https://reviews.llvm.org/D66174 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits