Bienvenido a los foros de Perl en Español, etsiano.
Para el primer caso te vale con
s/(\d{1,2} \w{3} \d{4})/**** $1 ****/g, siempre y cuando los nombres de los meses siempre tengan 3 letras.
Para el segundo caso, es más complicado, ya que en español las frases pueden acabar no solo en punto.
Suponiendo que estamos en el caso sencillo (todas las frases acaban en punto, seguido por uno o más espacios en blanco, o el final del texto), quedaría algo así (probado):
Using perl Syntax Highlighting
#!/usr/bin/env perl
use v5.14;
use File::Slurp;
my $texto = read_file('./texto');
while ($texto =~ m/(.+?[.])(?:\s+|\z)/sg) {
say "[$1]";
}
__END__
Coloreado en 0.008 segundos, usando
GeSHi 1.0.8.4
La expresión regular (
=~) busca (
m//) en el
$texto, de forma repetida (
/g), un patrón que consiste en uno o más caracteres cualesquiera hasta justo antes del primer '.', y que son guardados en $1 (
(.+?[.])) y que a la vez estén seguidos por uno o más caracteres espacio o el final del texto (
(?:\s+|\z)), sabiendo que el texto se compone de múltiples líneas pero que trataremos como si fueran una sola (
/s).
Más información en tu propio ordenador en
perldoc perlre,
y en la Web (
traducido).