diferença funcional entre lookarounds e grupo de não captura?

Estou tentando criar um exemplo em que a pesquisa positiva funcione, mas os grupos de não captura não funcionem, para entender melhor seus usos. Os exemplos que eu estou apresentando com todos funcionam também com grupos de não captura, então eu sinto que não estou entendendo completamente o uso de olhar positivo ao redor.

Aqui está uma string (tirada de um exemplo de SO) que usa um olhar positivo na resposta. O usuário desejava pegar o valor da segunda coluna, apenas se o valor da primeira coluna começasse com ABC e a última coluna tivesse o valor 'ativo'.

string ='''ABC1    1.1.1.1    20151118    active
          ABC2    2.2.2.2    20151118    inactive
          xxx     x.x.x.x    xxxxxxxx    active'''

A solução fornecida utilizou 'olhar positivo para o futuro', mas notei que poderia usar grupos não sujeitos a captura para chegar à mesma resposta. Então, estou tendo problemas para apresentar um exemplo em que a pesquisa positiva funciona, o grupo que não captura não funciona.

pattern =re.compile('ABC\w\s+(\S+)\s+(?=\S+\s+active)') #solution

pattern =re.compile('ABC\w\s+(\S+)\s+(?:\S+\s+active)') #solution w/out lookaround

Se alguém tivesse a gentileza de fornecer um exemplo, ficaria agradecido.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion