Java Regex: Comment faire Correspondre l'adresse de l'URL?

Je suis en train d'extraire la première partie du chemin d'accès de l'URL. Par exemple: à partir de http://foo.com/bar/1/2/3 je veux extraire bar. Ici c'est le code que j'utilise:

private static String getFirstPartOfPath(String url)
{
    Pattern pattern = Pattern.compile("^https?://[^/]+/([^/]+)/*$");
    Matcher matcher = pattern.matcher(url);
    if(matcher.find())
    {
        System.out.println(matcher.group(1));
    }
    return null;
}

Cependant, cela ne correspond pas à la plus triviale url indiquée ci-dessus, comme dans

public static void main(String[] args)
{
    getFirstPartOfPath("http://foo.com/bar/1/2/3");
}

imprime rien. Au premier coup d'œil la chaîne de modèle semble clair et comme il se doit évidemment de travail. Ce qui ne va pas?