/usr/share/doc/libregexp-assemble-perl/examples/naive is in libregexp-assemble-perl 0.35-8.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/usr/bin/perl -w
#
# naive - generate a regular expression that will lex regular expressions
# it is naive in the sense that it can't lex certain patterns, such as a
# pattern that contains nested parentheses (e.g. /ab(?:cd(?ef)?gh)+ij/ )
#
# The emitted regular expression is the default pattern that Regexp::Assemble
# uses to pick apart a string into tokens suitable for being assembled. If it
# isn't sufficiently sophisticated, you will have to supply your own lexer.
#
# Copyright (C) David Landgren 2004-2005
use strict;
my $directive = q{[bABCEGLQUXZ]};
my $punct = q{[^\\w]};
my $meta = q{[aefnrtdDwWsS]};
my $ctrl = q{c.};
my $octal = q{0\\d{2}};
my $hex = q{x(?:[\\da-fA-F]{2}|{[\\da-fA-F]{4}})};
my $named = q{N\\{\w+\\}};
my $prop = q{[Pp](?:\\{\w+\\}|.)};
my $single = q{[^\\w\\/{|}-]};
my $modifiable = qq{$punct|$meta|$ctrl|$octal|$hex|$named|$prop};
my $modifier = q{(?:[*+?]\\??|\\{\\d+(?:,\\d*)?\\}\\??)?};
my $backslash = qq{\\\\(?:$directive|[lu].|(?:$modifiable)$modifier)};
my $class = q{\\[.*?(?<!\\\\)\\]};
my $group = q{\\(.*?(?<!\\\\)\\)};
# \$Default_Lexer = qr/(?![[(\\\\]).$modifier|$backslash|$class$modifier|$group$modifier/;
print <<PATTS;
# The following patterns were generated with eg/naive
\$Default_Lexer = qr/(?![[(\\\\]).$modifier|$backslash|$class$modifier|$group$modifier/;
\$Single_Char = qr/^(?:\\\\(?:$meta|$ctrl|$single|$octal|$hex)|[^\$^])\$/;
PATTS
# my brain hurts just looking at this
|