$re = '/\b(wasn)\S*\b(?:\S*([?!.,:;])\S*)?/i';
$str = 'i really wasn aware and i wasnt aware at all. but i wasn\'t aware. just wasn\'t. this wasn45\'e meant to be. it wasn@\'re simple
Wasn&^$tt that nice?
You say wasnmmmt?
No, he wasn&#t#@$.
She wasn%#@t##, I know.
She wasn%#@t##,$#^ I know.';
$subst = "\1n't\2";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php