Correspondência regex Java x javascript

Eu estava revisando minhas expressões regulares em java quando fiz um teste simples

Pattern.matches("q", "Iraq"); //false
"Iraq".matches("q"); //false

Mas em javascript

/q/.test("Iraq"); //true
"Iraq".match("q"); //["q"] (which is truthy)

O que está acontecendo aqui? E posso fazer meu padrão de regex java "q" se comportar da mesma forma que o javascript?