tentei concatenar o regex e depois passá-lo para a consulta mongo, em vez de regex dentro da consulta, juntamente com a remoção das aspas e isso pareceu funcionar. espero que ajude alguém que tenha se deparado com problemas semelhantes
$cats = ['news', 'life', 'humor'];
foreach($cats as $cat){
$prefix = '/^';
$suffix = '/'; // prefix and suffix make up the regex notation for text that starts with
$category = $prefix . 'www.foo.com/' . $cat . $suffix;
$articles = db()->articles->find(['link' => array('$regex'=>new MongoRegex($category))]);
}