Ваше регулярное выражение не может работать, что вы ищете ([^ <] *), в основном, это потерпит неудачу, когда встретится с тегом <code><a, вы должны попробовать этот
preg_match_all("'<b>Author:</b> (.*(?=<br />))'", $page, $preg_author);
в основном он будет ловить любой символ (без новой строки), пока не встретит тег