Логические AND в регулярных выражениях состоят из последовательности сложенных предварительных утверждений. Например:
(?=^.*foo)
(?=^.*bar)
(?=^.*glarch)
будет соответствовать любой строке, которая содержит все три из "foo", "bar" и "glarch", в любом порядке, даже если некоторые должны перекрываться. (Это предполагает обычное толкование ^
и .
.)
Конечно, это свойство не свойственно Java.