On 31.08.2019 12:15, Markus Elfring wrote: >> +# nested likely/unlikely calls >> + if ($line =~ /\b(?:(?:un)?likely)\s*\(\s*!?\s*(IS_ERR(?:_OR_NULL|_VALUE)?|WARN)/) { >> + WARN("LIKELY_MISUSE", > > How do you think about to use the specification “(?:IS_ERR(?:_(?:OR_NULL|VALUE))?|WARN)” > in this regular expression? Hmm, (?: <- Catch group is required here, since it is used in diagnostic message, see $1 IS_ERR (?:_ <- Another atomic group just to show that '_' is a common prefix? I'm not sure about this. Usually, Perl interpreter is very good at optimizing such things. You could see this optimization if you run perl with -Mre=debug. (?:OR_NULL|VALUE))?|WARN) Regards, Denis