Cris, it seems we (also me) come to understanding what I mean and what I need. Let me explain again (because I probably was unclear before).
I need several (lets say 8) registers, for examle regA, regB, regC, regD, regE, regF, regG, regH.
Depending on the input data, for example regselect8[2:0], I need to be able to perform assignment and arithmetic operations on specific register through array, for example "regArr8[regselect8[2:0]][7:0] <= 0;" or "regArr8[regselect8[2:0]][7:0] <= regArr8[regselect8[2:0]][7:0] + 8'b1;" (exact syntax depends on organization of regArr).
At the same time, depending on other regselect16[1:0], I need to perform operations on pairs of registers regA:regB, regC:regD etc, for example "regArr16[regselect16[1:0]][15:0] <= regArr16[regselect16[1:0]][15:0] + 16'b1;"
All assignments will take place in same always block. If I put an analogy, it is a kind of implementation of x86 CPU, when you can address AL and AH registers but at the same time can address AX as a group of these registers.
Edit: or even better analogy: x86 has AH, AL, BH, BL, CH, CL, DH, DL, which individually can be addressed with 3 bits selector according to 8-bit access instruction bits. At the same time there're 16-bit access instructions, which address AX, BX, CX and DX (2 bits selector) but actually addresses these xH and xL registers, but in pairs.