Je ne comprends strictement rien à des résultats de recherche de motif par regex.

Ceci, ça va, je comprends les 2 listes résultat du findall():

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
import re
ch = 'jeanBjacquesBrousseauBecrivain'
print re.findall('[a-z]B',ch)
print re.findall('[a-z]+B',ch)
['nB', 'sB', 'uB']
['jeanB', 'jacquesB', 'rousseauB']
Ensuite, j'ai pensé obtenir ['jeanB','jeanBjacquesB','jeanBjacquesBrousseauB','jacquesB',''jacquesBrousseauB','rousseauB']
avec ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
print re.findall('([a-z]+B)+',ch)
mais le résultat est
['rousseauB']

Enfin avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
print re.findall('(([a-z]+B)+)',ch)
le résultat me plonge dans la perplexité:
[('jeanBjacquesBrousseauB', 'rousseauB')]
Quelqu'un peut-il expliquer les deux derniers résultats ?
Merci