Regex para verificar comienza con http: //, https: // o ftp: //

Estoy enmarcando una expresión regular para verificar si una palabra comienza conhttp:// ohttps:// oftp://, mi código es el siguiente,

     public static void main(String[] args) {
    try{
        String test = "http://yahoo.com";
        System.out.println(test.matches("^(http|https|ftp)://"));
    } finally{

    }
}

Imprimefalse. También verifiqué stackoverflow postRegex para probar si la cadena comienza con http: // o https: //

La expresión regular parece ser correcta, pero ¿por qué no coincide? Incluso intenté^(http|https|ftp)\:// y^(http|https|ftp)\\://

Respuestas a la pregunta(5)

Su respuesta a la pregunta