Ich habe zwar noch nie rel="nofollow", oder welche Schreibweise auch immer, benutzt aber kann nofollow nicht nur in einer Bedeutung zwischen "<a" und dem nächsten ">" vorkommen? Warum nicht nur nach nofollow suchen, ohne preg_match?
Auch solltest Du bei deinem Vorgehen bedenken, daß rel="nofollow" oder ähnliches im Linktext vorkommen könnte. Du solltest den Platz in $links[1] lieber für was anderes benutzen und nicht noch mal das reinschreiben, was in $links[0] ohnehin schon steht.