=================================================
Interpolate only $ and @ variable and not %hash or object reference TODO: fix this
=================================================

qq {hello $meow print("dsfsdf) %hash};

---

(source_file
  (string_qq_quoted
    (start_delimiter)
      (interpolation (scalar_variable))
    (end_delimiter))
  (semi_colon)
)

=================================================
qq //
=================================================

qq /im inside another delimiter/;

---

(source_file
  (string_qq_quoted (start_delimiter) (end_delimiter)) (semi_colon)
)

=================================================
qq '' interpolate
=================================================

qq 'this should $interpolate, yes';

---

(source_file
  (string_qq_quoted (start_delimiter) (interpolation (scalar_variable)) (end_delimiter)) (semi_colon)
)

=================================================
q{} string
=================================================

my $string = q{im a non interpolated string};

---

(source_file
  (variable_declaration (scope) (scalar_variable) (string_q_quoted)) (semi_colon)
)

=================================================
qx command
=================================================

my $string = qx{im a non interpolated string};

---

(source_file
  (variable_declaration (scope) (scalar_variable) (command_qx_quoted (start_delimiter) (end_delimiter))) (semi_colon)
)

=================================================
backtick_quoted
=================================================

`ls -a`;

---

(source_file
  (backtick_quoted) (semi_colon)
)

=================================================
qw command
=================================================

my @array = qw /
  PUBG
  EVENING
  BIO_SHOCK_INFINITY
/;

---

(source_file
  (variable_declaration
    (scope) (array_variable) (word_list_qw (start_delimiter_qw) (list_item) (list_item) (list_item) (end_delimiter_qw))
  ) (semi_colon)
)

=================================================
implicit regex matcher - all the flags are allowed, and the regex can have whitespace
=================================================

$string =~ /a b c/msixpodualng;

---

(source_file
  (binary_expression
    (scalar_variable) (pattern_matcher (regex_pattern) (regex_option))
  ) (semi_colon)
)

=================================================
m matcher operator
=================================================

$string =~ m/Simple/is;

---

(source_file
  (binary_expression
    (scalar_variable) (patter_matcher_m (start_delimiter) (end_delimiter) (regex_option))
  ) (semi_colon)
)

=================================================
m matcher operator - global flag is allowed for searches
=================================================

$string =~ m/abc/g;

---

(source_file
  (binary_expression
    (scalar_variable) (patter_matcher_m (start_delimiter) (end_delimiter) (regex_option))
  ) (semi_colon)
)


=================================================
m matcher operator - $ at the end shouldn't interpolate
=================================================

my $x = 'shru';
if ($x =~ m/u$/) {
}

---

(source_file
  (variable_declaration (scope) (scalar_variable) (string_single_quoted)) (semi_colon)
  (if_statement
    (parenthesized_expression (binary_expression (scalar_variable) (patter_matcher_m (start_delimiter) (end_delimiter))))
      (block)
  )
) 

=================================================
qr regex operator
=================================================

my $rex = qr/my.STRING/is;

---

(source_file
  (variable_declaration
    (scope) (scalar_variable) (regex_pattern_qr (start_delimiter) (end_delimiter) (regex_option))
    ) (semi_colon)
)

=================================================
s regex substitution
=================================================

$subs =~ s/my.STRING/foo/is;

---

(source_file
  (binary_expression
    (scalar_variable)
    (substitution_pattern_s (start_delimiter) (separator_delimiter) (end_delimiter) (regex_option_for_substitution))) (semi_colon)
)

=================================================
s regex substitution - no replace content
=================================================

$subs =~ s/search//is;

---

(source_file
  (binary_expression
    (scalar_variable)
    (substitution_pattern_s (start_delimiter) (separator_delimiter) (end_delimiter) (regex_option_for_substitution))) (semi_colon)
)

=================================================
tr// or y// transliteration
=================================================

my $subs =~ tr{bar}{foo}cs;

---

(source_file
  (binary_expression
    (variable_declaration (scope) (scalar_variable))
    (transliteration_tr_or_y (start_delimiter) (separator_delimiter) (end_delimiter) (regex_option_for_transliteration)))
    (semi_colon))
