Required help in perl regular expression substitution for this date format

Hi,

I have written a small perl script to handle particular date format using perl, but it is not substituting the whole string. Can some one please check on what is the issue with the code.

$_ = "Date: November 25, 2010  09:02:01 PM";
if(s/\(January|February|March|April|May|June|July|August|September|October|November|December\) *[0-3]*[0-9], *[0-9]*[0-9][0-9] *[0-2]?[0-9]:[0-5][0-9]:[0-5][0-9]\(\.[0-9][0-9]\)? *[AP]M/DATE***/g) {
$flag = 1;
print "Done";
print $_;
}

It is giving the following output:
DoneDate: DATE*** 25, 2010 09:02:01 PM

I want whole of this date to be substituted with DATE***

Hi,

I don't like your regular expression, but try next one (similar to yours but with little changes):

$_ = "Date: November 25, 2010  09:02:01 PM";
if(s/(January|February|March|April|May|June|July|August|September|October|November|December) *[0-3][0-9], *[0-9]{2}[0-9][0-9] *[0-2][0-9]:[0-5][0-9]:[0-5][0-9](\.[0-9][0-9])? *[AP]M/DATE***/g) {
    my $flag = 1;
    print "Done\n";
    print $_, "\n";
}

Regards,
Birei