Без lookahead нужно использовать обычную группировку (скобки).
Пример для схемы без пробелов:
magnet:\?.*?xt=urn:([a-z]+:[a-f0-9]+)
Пример для btih с пробелами:
magnet:\?.*?xt=urn:btih:([a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9])