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]