Python-get string entre para caracteres

Eu preciso me dar a corda entre~ e^.
Eu tenho uma string como esta:

~~~~ ABC ^ DEF ^ HGK > LMN ^  

Eu preciso pegar a string entre eles com python.
Eu tentei isso:

import re
target = ' ~~~~ ABC ^ DEF ^ HGK > LMN ^  '
matchObj = re.findall(r'~(.*?)\^', target)
print matchObj 

Mas o resultado é:

['~~~ ABC ']

O que eu espero é:

[ABC , DEF , HGK , LMN ]

ou

[^ABC , ^DEF , ^HGK , LMN ]

questionAnswers(4)

yourAnswerToTheQuestion