Shantae Dance Matching In the original Shantae game, there are transformation dances that you have to input in time using the D-Pad, A, and B. If you complete a predefined sequence while dancing, you will transform into the corresponding form (or teleport or heal). Your task is to output the corresponding effect when given an input. The catch is that you may get extraneous dance moves in the input, both before and after, and there may not even be a dance in the input.

The Dances

Using UDLRAB for dance moves:


Monkey: DR
Elephant: DL
Spider: DA
Harpy: DB
Tinkerbat: DUU
Heal: DUA
Scuttle Town: DULR
Water Town: DURLAB
Oasis Town: DURRBA
Zombie Caravan: DULLBA
Bandit Town: DUBLBR


Coding

Input: a sequence of dance moves. This can contain Up, Down, Left, Right, B, A, and Wait values. Use any convenient encoding.

Output: a value corresponding to the first matching dance in the sequence or a distinct value if there is no match. You can encode this in any convenient way.

Examples

Using . for waiting:


DR &rarr; Monkey
UUU.DLUAB &rarr; Elephant
L.DDBALL &rarr; Harpy
LRLRDURURLAB &rarr; No match
DUBLBR &rarr; Bandit Town
DURLBA &rarr; No match
DDUDR &rarr; Monkey
RLAB &rarr; No match
.DUUBBB &rarr; Tinkerbat
DADRDL &rarr; Spider
.DURRBADR &rarr; Oasis Town
DURR.BA &rarr; No match


Other Rules/Notes


Standard rules on loopholes and IO methods apply
Describe your encoding for dance moves and matching dances.
There may be more than one dance in the input. If that is the case, match only the first one that appears in the input.
Waiting interrupts dances.
JavaScript (ES6),  92 88 61  59 bytes
Saved 2 bytes thanks to a suggestion from @tsh
Expects UdLRAB for the dance moves and . for waiting. Outputs either undefined if there's no match, or the sequence of the matching dance (e.g. dR for Monkey or dURLAB for Water Town).

s=&gt;(/d([A-R]|U(U|A|LR|RLAB|RRBA|LLBA|BLBR))/.exec(s)||0)[0]

Try it online!
or Try it with enhanced output