As is shown in [this post](http://mathematica.stackexchange.com/questions/119907/how-to-find-out-the-recurring-period-by-pattern-matching)'s answer, it seems that though you can set priority of `Longest` (or `Shortest`) by `Longest[patt,prio]`, There's no direct way (at least no direct way as far as I know) to set priority between them.

It means that the priority setting with `Shortest` will just define the priority between multiple `Shortest`s but leave `Longest` uninfluenced. But I suppose there must be some cases when we need to specify the priority between them, for example, we need pattern1 to be shortest, after that, we need to make pattern2 longest, then we need to make pattern3 shortest.

How can we do this? Any help will be appreciated, thanks!!!

I'll update if I can find any proper example of this.