ho provato a concatenare la regex, quindi a passarla alla query mongo invece di regex all'interno della query insieme a rimuovere le virgolette e sembrava funzionare. spero che aiuti qualcun altro che ha riscontrato problemi simili
$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))]);
}