Current Perl documentation can be found at

Here is our local, out-dated (pre-5.6) version:

Two common misconceptions are that  is a synonym for s+, and that it's the edge between whitespace characters and non-whitespace characters. Neither is correct.  is the place between a w character and a W character (that is,  is the edge of a ``word''). It's a zero-width assertion, just like ^, $, and all the other anchors, so it doesn't consume any characters. the perlre manpage describes the behaviour of all the regexp metacharacters.

Here are examples of the incorrect application of , with fixes:

    "two words" =~ /(w+)(w+)/;          # WRONG
    "two words" =~ /(w+)s+(w+)/;         # right

    " =matchless= text" =~ /=(w+)=/;   # WRONG
    " =matchless= text" =~ /=(w+)=/;       # right

Although they may not do what you thought they did,  and B can still be quite useful. For an example of the correct use of , see the example of matching duplicate words over multiple lines.

An example of using B is the pattern BisB. This will find occurrences of ``is'' on the insides of words only, as in ``thistle'', but not ``this'' or ``island''.