Строки выглядят как гиперссылки, такие как http: // somethings . Это то, что мне нужно:
" , я имею в виду только те символы: если перед ними нет символов, он должен проверить; somethings означает, что могут использоваться любые типы символов (конечно, это ссылка), за исключением пробела (ссылка конечного маркера);  Я знаю, это разрешено RFC, но это единственный способ убежать; htmlentities($str, ENT_QUOTES, "UTF-8") , поэтому можно использовать всевозможные символы.  Это безопасно?  Или я рискую проблемы с xss или html broked? Это мое текущее регулярное выражение:
 preg_replace('#\b[^"](((http|https|ftp)://).+)#', '<a class="lforum" href="$1">$1</a>', $str); 
Но он проверяет только те строки, которые START с ", и я хочу наоборот. Любые ответы на этот вопрос будут полезны, спасибо!
  Что-то вроде этого: preg_match('/\b[^"]/',$input_string); 
  Это ищет слово-break ( \b ), за которым следует любой символ, кроме двойной кавычки ( [^"] ). 
  Что-то вроде этого: preg_match('~(((ThisShouldBePresent)://).+)~'); 
Я предположил, что скобки, которые вы указали в вопросе (и знак плюса), были предназначены как часть регулярного выражения, а не для поиска символов.
  Я также принял совет @ ThiefMaster и изменил разделитель на ~ чтобы избежать необходимости избегать // . 
Для обоих ваших случаев вам понадобятся утверждения lookbehind.
\b(?<!")(\w)\b – отрицательный lookbehind для соответствия только если не предшествует " (?<=ThisShouldBePresent://)(.*) – положительный lookbehind, чтобы соответствовать только в том случае, если предшествует ваша строка.