It's not pretty, but this type checks:
{-# LANGUAGE OverloadedStrings #-}
import Text.Regex.PCRE
quux = ("1999mercury" :: String) =~ ("(\\d+)(\\w+)" :: String) :: [[String]]
You can also create a monomorphic version of =~
to avoid writing the types all the time:
matches :: String -> String -> [[String]]
matches = (=~)
quux = "1999mercury" `matches` "(\\d+)(\\w+)"