Define your string and reimport:
>>> s = "[Hello|Hi]. We are [inviting | calling] you at position [[junior| mid junior]|senior] developer."
>>> import re
Now try:
>>> re.findall(r'\[ (?:[^][]* \[ [^][]* \])* [^][]* \]', s, re.X)
['[Hello|Hi]', '[inviting | calling]', '[[junior| mid junior]|senior]']
More details
Consider this script:
$ cat script.py
import re
s = "[Hello|Hi]. We are [inviting | calling] you at position [[junior| mid junior]|senior] developer."
matches = re.findall(r'''\[
(?:[^][]* \[ [^][]* \])*
[^][]*
\]
''',
s,
re.X)
print('\n'.join(matches))
This leads to the output:
$ python script.py
[Hello|Hi]
[inviting | calling]
[[junior| mid junior]|senior]
source
share