#!/usr/bin/sed -f
:loop
# Remove leading uninteresting stuff
s/^[^[]*//
# If we didn't hit a math start yet, get next line
/^\[\[/! d
# We now have a string starting with [[
# Until we have a starting and an ending point, get more lines
:get
/\[\[.*\]\]/ bgot
N
bget
:got
# We now have a string containing at least one string we want
# Preserve in hold space
h
# Remove everything not inside the pattern and print it
s/^\(\[\[[^]]*\]\]\).*/\1/p
# get text back from hold space
g
# Remove just-printed string
s/^\[\[[^]]*\]\]//
bloop