Tested this RegEx against your test string:
([Ss]peak(.|\r|\n)*?(?=http))
The part (?=http)
is the positive lookahead, which asserts that at the end of your string http
follows.
solved Finding a string that matches till http is found [duplicate]