BBC BASIC (1981 - you want the 1982 version though) had procedures, multi-line functions, and variable names of any length. It's still a bit rubbish by modern standards, but workable for the sort of size of program that you might actually write. You're vanishingly unlikely to make something longer than 1,000 lines, if even that...
Almost, but not quite. It would ignore anything after the 40th character of a name, and the overall line length restriction (255 characters, less line number) imposed a secondary limit.
Still night-and-day compared to some common contemporary BASIC variants what only allowed two-character variable names, of course, and not much of a limitation as really long names would soon have you hitting the overall memory restriction of the default address space (between 10 and 29Kbyte available, depending on screen mode, which had to be enough for the heap (including your code) and the call stack).
I perhaps remember this far too well, given how long it is since I touched one of those machines...
Yes, sorry, the line length is indeed limited to 255 chars (or is it 252/253?)! - I guess I just meant that there are no specific additional limits on variable name lengths.
I couldn't find any evidence of a 40 char limit on BASIC II... the full length of the variable name appears to be stored and compared.
253 IIRC: 256 less two bytes for a 16-bit line number and one for either an EOL marker or a length indicator (I forget which it used and I'm feeling too lazy to look it up ATM).
Though there was also a limit (also ~256) to the line on entry, which you would normally hit first because keywords are stored tokenised: "PRINT" would be stored as one byte not five.