Перепишите ваше регулярное выражение как:
(?:\<a[^*]href="(?:http://[^"]+?|[^"]+?\.pdf)"+?[^>]*?)(>)
non capture __^^ ^ ^
capture __|_|
Как сказал Тони Лукасавадж, есть ненужная группа без захвата, и, кроме того, нет необходимости бежать <
, поэтому она становится:
<a[^*]href="(?:http://[^"]+?|[^"]+?\.pdf)"+?[^>]*?(>)
non capture __^^ ^ ^
capture __|_|