Use
re.findall(r'\breview:\s*(.*?)\s*\.\.\.', string)
See proof. Python test:
import re
regex = r"\breview:\s*(.*?)\s*\.\.\."
string = "review: I love you very much... reviewer:jackson review: I hate you very much... reviewer:madden review: sky is pink and i ... reviewer: tom"
print ( re.findall(regex, string) )
Output: ['I love you very much', 'I hate you very much', 'sky is pink and i']
Note the r"..." prefix signalling raw string literal since "\b" is not a word boundary, and r"\b" is.
EXPLANATION
NODE EXPLANATION
--------------------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
--------------------------------------------------------------------------------
review: 'review:'
--------------------------------------------------------------------------------
\s* whitespace (\n, \r, \t, \f, and " ") (0 or
more times (matching the most amount possible))
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
.*? any character except \n (0 or more times
(matching the least amount possible))
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
\s* whitespace (\n, \r, \t, \f, and " ") (0 or
more times (matching the most amount possible))
--------------------------------------------------------------------------------
\.\.\. '...'
--------------------------------------------------------------------------------