Java:Pattern.MULTILINE属性

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test {
    private static String input = "";

    public static void test1() {
        String regex = "^(.|\\s)*$";
        Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        Matcher matcher = pattern.matcher(input);
        System.out.println("test1() begin");
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.printf("%d-%d\n", matcher.start(), matcher.end());
        }
        System.out.println("test1() end");
    }

    public static void test2() {
        String regex = "^(.|\\s)*$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        System.out.println("test2() begin");
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.printf("%d-%d\n", matcher.start(), matcher.end());
        }
        System.out.println("test2() end");
    }

    public static void main(String[] args) {
        test1();
        test2();
    }
}

运行结果:为什么不一样?
test1() begin
test1() end
test2() begin

0-0
test2() end

Pattern.MULTILINE允许多行匹配。没有它,遇到换行,就不继续往下匹配了。