Regex is not the best solution to this problem. You will be best served by creating a parsing library. Something where you easily create logic blocks to distinguish one from the other. You need to come up with a set of rules that break the text into pieces that you would like to see.
"Are you sure?" he asked.
Does this work when using regular expressions? However with the parser you can really see
<start quote><capitalization>are you sure<question><end quote>he asked<period>
that with simple rules one could say "this is one sentence."
wheaties
source share