(?=) ищет, начиная с текущей позиции в строке, но по результатам поиска текущую позицию не меняет.
Соответственно, ^ означает, что поиск начинается с начала строки.
И если первый (?=) завершается успехом, срабатывает второй (?=) - опять с начала строки, а потом и третий - тоже с начала строки.
А после завершения успехом всех трёх (?=), срабатывает - опять же, с начала строки - [a-zA-Z\d]{6,}$
P.S. Конструкция X(?=Y) означает, что сначала обычным образом ищется X, после чего (?=Y) начинает поиск с текущей позиции - сразу после найденного X.