cosmetic changes.
support back reference and conditional pattern