#!/usr/bin/perl

while (1) {
  print "Enter pattern";
  print ", or . to re-use previous," if ($LASTREGEXP);
  print " or leave empty to exit:\n";
  print "> ";
  $REGEXP = <STDIN>;
  chomp $REGEXP;
  if ($REGEXP eq '.') {
    $REGEXP = $LASTREGEXP;
  }
  exit (0) unless ($REGEXP);
  print "Enter string to match";
  print " or . to re-use previous" if ($LASTSTRING);
  print ":\n";
  print "> ";
  $STRING = <STDIN>;
  chomp $STRING;
  if ($STRING eq '.') {
    $STRING = $LASTSTRING;
  }

  $LASTREGEXP = $REGEXP;
  $LASTSTRING = $STRING;

  @MATCHES = $STRING =~ /$REGEXP/;
  if ($#MATCHES > -1) {
    print "Successful match!\n";
    print "There were " . ($#MATCHES + 1) . " strings returned: \n";
    $counter = 0;
    foreach $MATCH (@MATCHES) {
      $counter++;
      print "String $counter: $MATCH\n";
    }
  } else {
    print "There was not a successful match.\n";
  }
  print "\n\n";
}
