; Thorough tests for memory accessing instructions with --syntax=b
    ; default bracket syntax (relaxed one)
    OPT reset --zxnext --syntax=a -Wrdlow
    ; 3x OK: val, mem, mem
    ld  a,0 : ld  a,(1) : ld  a,[2]
    ; 2x OK: val, val, ---
    ld  b,3 : ld  b,(4) : ld  b,[5]
    ; 2x OK: val, val, ---
    bit 3,a : bit (3),a : bit [3],a
    ; 2x OK: val, val, ---
    add a,6 : add a,(7) : add a,[8]
    adc a,6 : adc a,(7) : adc a,[8]
    sub a,6 : sub a,(7) : sub a,[8]     ; this syntax works because --syntax=A was used
    sbc a,6 : sbc a,(7) : sbc a,[8]
    and a,6 : and a,(7) : and a,[8]
    xor a,6 : xor a,(7) : xor a,[8]
    or  a,6 : or  a,(7) : or  a,[8]
    cp  a,6 : cp  a,(7) : cp  a,[8]
    ; 2x OK: val, val, ---
    im  1   : im  (1)   : im  [1]
    ; 2x OK: val, val, ---
    ld (hl),9  : ld (hl),(10) : ld (hl),[11]
    ; 2x OK: val, val, ---
    ld (ix),12 : ld (ix),(13) : ld (ix),[14]
    ; 2x OK: val, val, ---
    ld  ixl,15 : ld  ixl,(16) : ld  ixl,[17]
    ; 2x OK: val, val, ---
    ldd (hl),18 : ldd (hl),(19) : ldd (hl),[20]  ; Fake instructions
    ; 2x OK: val, val, ---
    ldd (ix),21 : ldd (ix),(22) : ldd (ix),[23]  ; Fake instructions
    ; 2x OK: val, val, ---
    ldi (hl),24 : ldi (hl),(25) : ldi (hl),[26]  ; Fake instructions
    ; 2x OK: val, val, ---
    ldi (ix),27 : ldi (ix),(28) : ldi (ix),[29]  ; Fake instructions
    ; 2x OK: val, val, ---
    nextreg 30,31 : nextreg (32),(33) : nextreg [34],[35]
    ; 2x OK: val, val, ---
    out (c),0 : out (c),(0) : out (c),[0]
    ; 2x OK: val, val, ---
    res 7,a : res (7),a : res [7],a
    ; 2x OK: val, val, ---
    rst 16 : rst (16) : rst [16]
    ; 2x OK: val, val, ---
    set 6,a : set (6),a : set [6],a
    ; 2x OK: val, val, ---
    test 36 : test (37) : test [38]

    ;; 16 bit immediates (none of them on regular Z80, always ambiguous val+mem combination)
    ; 2x OK: val, val, ---
    add hl,100 : add hl,(101) : add hl,[102]
    add bc,103 : add bc,(104) : add bc,[105]
    add de,106 : add de,(107) : add de,[108]
    push 109 : push (110) : push [111]
    
    OPT --syntax=b
    ; 3x OK: val, mem, mem
    ld  a,0 : ld  a,(1) : ld  a,[2]
    ; 1x OK: val, ---, ---
    ld  b,3 : ld  b,(4) : ld  b,[5]
    ; 1x OK: val, ---, ---
    bit 3,a : bit (3),a : bit [3],a
    ; 1x OK: val, ---, ---
    add a,6 : add a,(7) : add a,[8]
    adc a,6 : adc a,(7) : adc a,[8]
    sub a,6 : sub a,(7) : sub a,[8]     ; this syntax works because --syntax=A was used
    sbc a,6 : sbc a,(7) : sbc a,[8]
    and a,6 : and a,(7) : and a,[8]
    xor a,6 : xor a,(7) : xor a,[8]
    or  a,6 : or  a,(7) : or  a,[8]
    cp  a,6 : cp  a,(7) : cp  a,[8]
    ; 1x OK: val, ---, ---
    im  1   : im  (1)   : im  [1]
    ; 1x OK: val, ---, ---
    ld (hl),9  : ld (hl),(10) : ld (hl),[11]
    ; 1x OK: val, ---, ---
    ld (ix),12 : ld (ix),(13) : ld (ix),[14]
    ; 1x OK: val, ---, ---
    ld  ixl,15 : ld  ixl,(16) : ld  ixl,[17]
    ; 1x OK: val, ---, ---
    ldd (hl),18 : ldd (hl),(19) : ldd (hl),[20]  ; Fake instructions
    ; 1x OK: val, ---, ---
    ldd (ix),21 : ldd (ix),(22) : ldd (ix),[23]  ; Fake instructions
    ; 1x OK: val, ---, ---
    ldi (hl),24 : ldi (hl),(25) : ldi (hl),[26]  ; Fake instructions
    ; 1x OK: val, ---, ---
    ldi (ix),27 : ldi (ix),(28) : ldi (ix),[29]  ; Fake instructions
    ; 1x OK: val, ---, ---
    nextreg 30,31 : nextreg (32),(33) : nextreg [34],[35]
    ; 1x OK: val, ---, ---
    out (c),0 : out (c),(0) : out (c),[0]
    ; 1x OK: val, ---, ---
    res 7,a : res (7),a : res [7],a
    ; 1x OK: val, ---, ---
    rst 16 : rst (16) : rst [16]
    ; 1x OK: val, ---, ---
    set 6,a : set (6),a : set [6],a
    ; 1x OK: val, ---, ---
    test 36 : test (37) : test [38]

    ; 1x OK: val, ---, ---
    add hl,100 : add hl,(101) : add hl,[102]
    add bc,103 : add bc,(104) : add bc,[105]
    add de,106 : add de,(107) : add de,[108]
    push 109 : push (110) : push [111]

someLabel:
    ld  b,(someLabel)       ; just make super sure it does catch the original real world annoyance

    ;; Docs example from command line options section
        OPT reset --syntax=abfw
label:  dw 15
        ld b,(label)
        sub a,b
