The idea is definitely cool, but there are a couple bugs in the execution:
- You set the colors for some elements, but not for all. For people whose color defaults are light-on-dark, it's impossible to read. Luckily, Tk handles standard -fg and -bg options, so this is quickly solved. However, you might want to either completely leave the colors alone (easy), specify them all (medium), or choose your colors to work with the defaults (hard).
- It's great for seeing what substitutions will do, but doesn't seem to work for regexes. With a string of "abbaaba" and a regex "a+", I get "abbaaba".
Also, it would be much cooler if you could show what the regex did element by element. For example, you could turn on /x by default, split the RE on whitespace, and show both what each prefix matches, and what each matches with the rest of the RE as a lookahead assertion (
untested):
local $_ = $string_to_match;
my @reparts = split ' ', $re;
my $pre = '';
while (@reparts) {
$pre .= shift @reparts;
print "$pre w/ lookahead: ", /$pre (?=@reparts)/x, "\n";
print "Prefix $pre: ", /$pre/x, "\n";
}
print "Shebang entier: ", /$pre/x, "\n";
/s