To do this, you have to parse out each word in the input stream. That's because Perl has to recompile all those patterns for each of the lines of the file. Two common misconceptions are that C is a synonym for C , and that it's the edge between whitespace characters and non-whitespace characters. Neither is correct. It's a zero-width assertion, just like C , C , and all the other anchors, so it doesn't consume any characters.
L describes the behaviour of all the regexp metacharacters.
Although they may not do what you thought they did, C and C can still be quite useful. For an example of the correct use of C , see the example of matching duplicate words over multiple lines. An example of using C is the pattern C . Because once Perl sees that you need one of these variables anywhere in the program, it has to provide them on each and every pattern match. Remember that some algorithms really appreciate them.