Would somebody care to help me out with a `preg_match_all` Regex?

I need to extract from a block that looks like this:

```
(arbitrary data)
alt=BAUSTEIN^550^^transparent^transparent^null^null^(...base64 encoded data...) ^
(arbitrary data)
alt=BAUSTEIN^550^^transparent^transparent^null^null^(...base64 encoded data...) ^

```

all base64 encoded blocks. The rule is: There is always `alt=BAUSTEIN` followed by six columns of arbitrary data delimited by `^`. The base64 encoded column is also delimited by `^`

my current feeble attempt contains a lot of `([^\^].*)` and won't match anything. Pointers much appreciated.