# Re: Test not working so well

```On 12/10/23 12:25, ToddAndMargo via perl6-users wrote:
```
```On 12/9/23 22:49, William Michels via perl6-users wrote:
```
```f \$x.match( / ^ <+[0..9] + [a..z]> ** 7 \$ / ) { do something...};
```
```

What is the difference between

<+[0..9]
and
<[0..9]

And
/ ^ <+[0..9] + [a..z]> ** 7 \$ /

does this mean that both [0..9] AND [a..z] have to
be present.  In other words is the an AND or an OR?
```
```
I am confused. What am I missing?

```
[0] > my Str \$x="abc3defg"; if \$x.match( / ^ <[0..9] + [h..z]> ** 8 \$ / ) { print "True\n"; } else { print "False\n" };
```False

This would mean that both [0..9] and [h..z] would have to match.

```
[0] > my Str \$x="abc3defg"; if \$x.match( / ^ <[0..9] + [a..z]> ** 8 \$ / ) { print "True\n"; } else { print "False\n" };
```True

This would mean that both [0..9] and [a..z] would have to match.

```
[0] > my Str \$x="abc3defg"; if \$x.match( / ^ <[0..9]> ** 8 \$ / ) { print "True\n"; } else { print "False\n" };
```False

"3" is in the string.  Why False?

```
my Str \$x="abc3defg"; if \$x.match( / ^ <[a..h]> ** 8 \$ / ) { print "True\n"; } else { print "False\n" };
```False

a and b and c and d and e and f and g are also in the string.
Why the false?

```