Encapsed strings
-----
<?php

"$A";
"$A->B";
"$A[B]";
"$A[0]";
"$A[0x0]";
"$A[$B]";
"{$A}";
"{$A['B']}";
"${A}";
"${A['B']}";
"${$A}";
"\{$A}";
"\{ $A }";
"\\{$A}";
"\\{ $A }";
"{$$A}[B]";
"$$A[B]";
"A $B C";
b"$A";
B"$A";
-----
array(
    0: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: A
            )
        )
    )
    1: Scalar_Encapsed(
        parts: array(
            0: Expr_PropertyFetch(
                var: Expr_Variable(
                    name: A
                )
                name: B
            )
        )
    )
    2: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: B
                )
            )
        )
    )
    3: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: 0
                )
            )
        )
    )
    4: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: 0x0
                )
            )
        )
    )
    5: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Expr_Variable(
                    name: B
                )
            )
        )
    )
    6: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: A
            )
        )
    )
    7: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: B
                )
            )
        )
    )
    8: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: A
            )
        )
    )
    9: Scalar_Encapsed(
        parts: array(
            0: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: B
                )
            )
        )
    )
    10: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: Expr_Variable(
                    name: A
                )
            )
        )
    )
    11: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: \{
            )
            1: Expr_Variable(
                name: A
            )
            2: Scalar_EncapsedStringPart(
                value: }
            )
        )
    )
    12: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: \{
            )
            1: Expr_Variable(
                name: A
            )
            2: Scalar_EncapsedStringPart(
                value:  }
            )
        )
    )
    13: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: \
            )
            1: Expr_Variable(
                name: A
            )
        )
    )
    14: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: \{
            )
            1: Expr_Variable(
                name: A
            )
            2: Scalar_EncapsedStringPart(
                value:  }
            )
        )
    )
    15: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: Expr_Variable(
                    name: A
                )
            )
            1: Scalar_EncapsedStringPart(
                value: [B]
            )
        )
    )
    16: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: $
            )
            1: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: A
                )
                dim: Scalar_String(
                    value: B
                )
            )
        )
    )
    17: Scalar_Encapsed(
        parts: array(
            0: Scalar_EncapsedStringPart(
                value: A
            )
            1: Expr_Variable(
                name: B
            )
            2: Scalar_EncapsedStringPart(
                value:  C
            )
        )
    )
    18: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: A
            )
        )
    )
    19: Scalar_Encapsed(
        parts: array(
            0: Expr_Variable(
                name: A
            )
        )
    )
)