Bug in the Improved Sentence Case Macro? [RESOLVED]

I'm using the Improved Sentence Case Macro from the Best Macro List, but I'm having a small problem: contractions. For example:

let's see, I don't know if I'll try this again.

gets converted to:

Let'S see, I don'T know if I'Ll try this again.

I'm not smart enough with Perl Compatible Regular Expressions to be able to figure out how to fix this. Any help?

Well, this is what I get:

let's see, I don't know if I'll try this again.

Let's See, I Don't Know if I'll Try This Again

So maybe try it again?

Your example looks like the Title Case Macro, not the Sentence Case Macro. Let's see if I can upload the Sentence Case Macro that I'm having issues with. I believe it's identical to yours with the exception of the triggers (I removed the Hot Key trigger and use it as part of a palette.)
Sentence Case.kmmacros (3.7 KB)

Ah, got it. Sentence not Title. Yes, that's a problem. Here's the solution (add the fourth line: s/'([stmdlrv])/'\l$1/gi;):

#! /usr/bin/env perl

use strict;
use warnings;

my @acronyms = qw( FBI CIA NASA );
my $acronym_list = join '|', @acronyms;

$_ = $ENV{KMVAR_LinkText};

s/(?<=\b[A-Z])[.]//gi;
$_ = lc $_ if not /[[:lower:]]/;
s/(^\w|[!\?\.'"’”]\s+\w|['"“‘]\w)/\U$1\E/g;
s/'([stmdlrv])/'\l$1/gi;
s/([A-Z]\.\s)([A-Z])/$1\L$2\E/g;
s/(,['"’”] )([A-Z])/$1\L$2\E/g;
s/\b($acronym_list)\b/\U$1/gi;

print $_;

I'll update the macro on the site...

Let me try it out:

let's see, I don't know if I'll try this again.

gets converted to:

Let's see, I don't know if I'll try this again.

Excellent! Thank you very much!

Sorry for my initial confusion. Just speculating but I have a hunch the code couldn't distinguish between a closing single quote and apostrophe. This fix takes care of that.