Nie chciwe wyrażenie regularne pasuje do ograniczników multicharacter w awk

Rozważ ciąg"AB 1 BA 2 AB 3 BA". Jak mogę dopasować zawartość między"AB" i"BA" w nie chciwy sposób (w awk)?

Próbowałem:

awk '
BEGIN {
    str="AB 1 BA 2 AB 3 BA"
    regex="AB([^B][^A]|B[^A]|[^B]A)*BA"
    if (match(str,regex))
        print substr(str,RSTART,RLENGTH)
}'

bez wyjścia. Uważam, że powodem braku meczu jest nieparzysta liczba znaków pomiędzy"AB" i"BA". Jeśli wymienięstr z"AB 11 BA 22 AB 33 BA" regex wydaje się działać ..

questionAnswers(3)

yourAnswerToTheQuestion