Pattern p = Pattern.compile(regexp, Pattern.MULTILINE);
Pattern.MULTILINEというのは
ABCZXY
DEFZXY
という2行になっている文字列を1行として扱う。
そして、regexpが.*ZXY$だったら何度もZXYにマッチするということなのですか?