Many modern regex implementations interpret the \\w character class shorthand as \"any letter, digit, or connecting punctuation\" (usually: underscore). That wa
In Java, \w and \d are not Unicode-aware; they only match the ASCII characters, [A-Za-z0-9_] and [0-9]. The same goes for \p{Alpha} and friends (the POSIX "character classes" they're based on are supposed to be locale-sensitive, but in Java they've only ever matched ASCII characters). If you want to match Unicode "word characters" you you have to spell it out, e.g. [\pL\p{Mn}\p{Nd}\p{Pc}],for letters, non-spacing modifiers (accents), decimal digits, and connecting punctuation.
However, Java's \b is Unicode-savvy; it uses Character.isLetterOrDigit(ch) and checks for accented letters as well, but the only "connecting punctuation" character it recognizes is the underscore. EDIT: when I try your sample code, it prints "" and élève" as it should (see it on ideone.com).