#!/usr/bin/perl
$regex = '{[^}]+}|"Tarzan\d+"|(Tarzan\d+)';
$subject = 'Jane" "Tarzan12" Tarzan11@Tarzan22 {4 Tarzan34}';
# put Group 1 captures in an array
my @group1Caps = ();
while ($subject =~ m/$regex/g) {
}
######## The six main tasks we're likely to have ########
# Task 1: Is there a match?
print "*** Is there a Match? ***\n"; if ( @group1Caps > 0) { print "Yes\n"; }
# Task 2: How many matches are there?
print "\n*** Number of Matches ***\n";
# Task 3: What is the first match?
print "\n\n*** First Match ***\n"; if ( @group1Caps > 0) { print $group1Caps[0]; }
# Task 4: What are all the matches?
print "\n\n*** Matches ***\n"; if ( @group1Caps > 0) {
foreach(@group1Caps) { print "$_\n"; } }
# Task 5: Replace the matches
($replaced = $subject) =~ s/$regex/ if (defined $1) { "Superman"; } else {$&;} /eg
; print "\n*** Replacements ***\n";
# Task 6: Split
# Start by replacing by something distinctive,
# as in Step 5. Then split.
@splits = split(/Superman/, $replaced); print "\n*** Splits ***\n"; foreach(@splits) { print "$_\n"; }
IyEvdXNyL2Jpbi9wZXJsCiRyZWdleCA9ICd7W159XSt9fCJUYXJ6YW5cZCsifChUYXJ6YW5cZCspJzsKJHN1YmplY3QgPSAnSmFuZSIgIlRhcnphbjEyIiBUYXJ6YW4xMUBUYXJ6YW4yMiB7NCBUYXJ6YW4zNH0nOwojIHB1dCBHcm91cCAxIGNhcHR1cmVzIGluIGFuIGFycmF5Cm15IEBncm91cDFDYXBzID0gKCk7CndoaWxlICgkc3ViamVjdCA9fiBtLyRyZWdleC9nKSB7CglwcmludCAkMSAuICJcbiI7CglpZiAoZGVmaW5lZCAkMSkge3B1c2goQGdyb3VwMUNhcHMsJDEpOwl9Cn0KCiMjIyMjIyMjIFRoZSBzaXggbWFpbiB0YXNrcyB3ZSdyZSBsaWtlbHkgdG8gaGF2ZSAjIyMjIyMjIwoKIyBUYXNrIDE6IElzIHRoZXJlIGEgbWF0Y2g/CnByaW50ICIqKiogSXMgdGhlcmUgYSBNYXRjaD8gKioqXG4iOwppZiAoIEBncm91cDFDYXBzID4gMCkgIHsgcHJpbnQgIlllc1xuIjsgfQplbHNlIHsgcHJpbnQgKCJOb1xuIik7IH0KCiMgVGFzayAyOiBIb3cgbWFueSBtYXRjaGVzIGFyZSB0aGVyZT8KcHJpbnQgIlxuKioqIE51bWJlciBvZiBNYXRjaGVzICoqKlxuIjsKcHJpbnQgc2NhbGFyKEBncm91cDFDYXBzKTsKCiMgVGFzayAzOiBXaGF0IGlzIHRoZSBmaXJzdCBtYXRjaD8KcHJpbnQgIlxuXG4qKiogRmlyc3QgTWF0Y2ggKioqXG4iOwppZiAoIEBncm91cDFDYXBzID4gMCkgIHsgcHJpbnQgJGdyb3VwMUNhcHNbMF07IH0KCiMgVGFzayA0OiBXaGF0IGFyZSBhbGwgdGhlIG1hdGNoZXM/CnByaW50ICJcblxuKioqIE1hdGNoZXMgKioqXG4iOwppZiAoIEBncm91cDFDYXBzID4gMCkgIHsgCglmb3JlYWNoKEBncm91cDFDYXBzKSB7IHByaW50ICIkX1xuIjsgfSAKCX0KCiMgVGFzayA1OiBSZXBsYWNlIHRoZSBtYXRjaGVzCigkcmVwbGFjZWQgPSAkc3ViamVjdCkgPX4gcy8kcmVnZXgvCgkJaWYgKGRlZmluZWQgJDEpIHsgIlN1cGVybWFuIjsgfSBlbHNlIHskJjt9IC9lZzsKcHJpbnQgIlxuKioqIFJlcGxhY2VtZW50cyAqKipcbiI7CnByaW50ICRyZXBsYWNlZCAuICJcbiI7CgojIFRhc2sgNjogU3BsaXQKIyBTdGFydCBieSByZXBsYWNpbmcgYnkgc29tZXRoaW5nIGRpc3RpbmN0aXZlLAojIGFzIGluIFN0ZXAgNS4gVGhlbiBzcGxpdC4KQHNwbGl0cyA9IHNwbGl0KC9TdXBlcm1hbi8sICRyZXBsYWNlZCk7CnByaW50ICJcbioqKiBTcGxpdHMgKioqXG4iOwpmb3JlYWNoKEBzcGxpdHMpIHsgcHJpbnQgIiRfXG4iOyB9IAo=