#!/usr/bin/perl -w
use strict;
use warnings;
while ( <DATA> ) {
# \1/ Starting at the beginning of a string or non-word character,
# \2/ MATCH a single-quote character followed by a character that is
# *not* a single quote character,
# \3/ And continue matching one or more times:
# - a white space character,
# - a word character,
# - a comma,
# - or a single-quote that is followed by a lower-case 's' or 't'.
# \4/ And END the match on a single quote.
# \5/ Continue searching for additional matches.
my @matches = /(?:\A|\W)('[^'](?:\w|\s|,|'(?=[st]\b))+')/g ;
# \___1___/\__2_/\___________3__________/4/\5/
}
__END__
'At the Beginning' ABC released its full midseason schedule today, and it features premiere dates for several new shows, along with one rather surprising timeslot change.</ p> <p> First of all, ABC's previously reported plans for dramas ' Once Upon A Time, ' ' Revenge, ' ' Grey's Anatomy,' and 'Scandal' haven't changed.
IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp3aGlsZSAoPERBVEE+KSB7CgojICAgXDEvIFN0YXJ0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzdHJpbmcgb3Igbm9uLXdvcmQgY2hhcmFjdGVyLAojICAgXDIvIE1BVENIIGEgc2luZ2xlLXF1b3RlIGNoYXJhY3RlciBmb2xsb3dlZCBieSBhIGNoYXJhY3RlciB0aGF0IGlzCiMgICAgICAgKm5vdCogYSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyLAojICAgXDMvIEFuZCBjb250aW51ZSBtYXRjaGluZyBvbmUgb3IgbW9yZSB0aW1lczoKIyAgICAgICAtIGEgd2hpdGUgc3BhY2UgY2hhcmFjdGVyLAojICAgICAgIC0gYSB3b3JkIGNoYXJhY3RlciwKIyAgICAgICAtIGEgY29tbWEsCiMgICAgICAgLSBvciBhIHNpbmdsZS1xdW90ZSB0aGF0IGlzIGZvbGxvd2VkIGJ5IGEgbG93ZXItY2FzZSAncycgb3IgJ3QnLgojICAgXDQvIEFuZCBFTkQgdGhlIG1hdGNoIG9uIGEgc2luZ2xlIHF1b3RlLgojICAgXDUvIENvbnRpbnVlIHNlYXJjaGluZyBmb3IgYWRkaXRpb25hbCBtYXRjaGVzLgoKICAgIG15IEBtYXRjaGVzID0gLyg/OlxBfFxXKSgnW14nXSg/Olx3fFxzfCx8Jyg/PVtzdF1cYikpKycpL2c7CgojICAgICAgICAgICAgICAgICAgXF9fXzFfX18vXF9fMl8vXF9fX19fX19fX19fM19fX19fX19fX18vNC9cNS8KCiAgICBwcmludCBqb2luKCJcbiIsIEBtYXRjaGVzKSwgIlxuIjsKfQoKX19FTkRfXwogJ0F0IHRoZSBCZWdpbm5pbmcnIEFCQyByZWxlYXNlZCBpdHMgZnVsbCBtaWRzZWFzb24gc2NoZWR1bGUgdG9kYXksIGFuZCBpdCBmZWF0dXJlcyBwcmVtaWVyZSBkYXRlcyBmb3Igc2V2ZXJhbCBuZXcgc2hvd3MsIGFsb25nIHdpdGggb25lIHJhdGhlciBzdXJwcmlzaW5nIHRpbWVzbG90IGNoYW5nZS48L3A+PHA+Rmlyc3Qgb2YgYWxsLCBBQkMncyBwcmV2aW91c2x5IHJlcG9ydGVkIHBsYW5zIGZvciBkcmFtYXMgJ09uY2UgVXBvbiBBIFRpbWUsJyAnUmV2ZW5nZSwnICdHcmV5J3MgQW5hdG9teSwnIGFuZCAnU2NhbmRhbCcgaGF2ZW4ndCBjaGFuZ2VkLgoK