# Spec WildShiftAndPattern
Exact string matching with wildcards using bit parallelism.

Extends | Pattern
All Extended | Pattern
Defined in | <seqan/find.h>
Signature | `template <typename TNeedle> class Pattern<TNeedle, WildShiftAnd>;`

## Template Parameters

`TNeedle` | The needle type. Type: ContainerConcept.

## Interface Function Overview

### Interface Functions Inherited From Pattern

- `getBeginScore`
- `host`
- `needle`
- `position`
- `scoringScheme`
- `setNeedle`
- `setScoringScheme`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Pattern

- `Container`
- `Difference`
- `Host`
- `Needle`
- `PexMultiFinder`
- `Position`
- `ScoringScheme`
- `Size`
- `Value`

## Detailed Description

The Shift-And algorithm is applicable to search small patterns in texts using small alphabets.

The supported wildcards are `*` (zero or more occurrence), `+` (one or more occurrences), `?` (optional character), `.` (every character), character classes (e.g. `[a-z]`) and bounded repeats (e.g. `{n,m}`).

After the find-Method returned the Finder will point to the last position of the occurrence

We encourage the user to intialize the Pattern with a `String<char>` (setHost or the C'tor). If you use for instance `String<Dna>` instead you won't be able to specify wildcards.

#### Dox Sources

    /*!
     * @class WildShiftAndPattern
     *
     * @extends Pattern
     *
     * @headerfile <seqan/find.h>
     *
     * @brief Exact string matching with wildcards using bit parallelism.
     *
     * @signature template <typename TNeedle> class Pattern<TNeedle, WildShiftAnd>;
     *
     * @tparam TNeedle The needle type. Type: @link ContainerConcept @endlink.
     *
     * The Shift-And algorithm is applicable to search small patterns in texts using
     * small alphabets.
     *
     * The supported wildcards are <tt>*</tt> (zero or more occurrence), <tt>+</tt>
     * (one or more occurrences), <tt>?</tt> (optional character), <tt>.</tt> (every
     * character), character classes (e.g. <tt>[a-z]</tt>) and bounded repeats (e.g.
     * <tt>{n,m}</tt>).
     *
     * After the find-Method returned the Finder will point to the last position of
     * the occurrence
     *
     * We encourage the user to intialize the Pattern with a
     * <tt>String&lt;char&gt;</tt> (@link HostedConcept#setHost @endlink or the
     * C'tor). If you use for instance <tt>String&lt;Dna&gt;</tt> instead you won't
     * be able to specify wildcards.
     */