How can I match everything \p{L} but not \p{Alpha} in the regex? Is it possible to implement a logical AND in Java Regexp? If so, how can this be achieved?
\p{L}
\p{Alpha}
AND
Yes, using a negative character class :
[^\P{L}\p{Alpha}]
[^\P{L}] same as \p{L} , but a negative character class allows you to subtract characters / properties from this character set.
[^\P{L}]
Maybe, but it is specific to Java:
[\p{L}&&[^\p{Alpha}]]
(if necessary, indicated in the Java string, etc.)