The second sentence is in error: the urgent pointer points to the sequence number of the LAST octet (not LAST+1) in a sequence of urgent data. The description on page 56 (last sentence) is correct.
A TCP MUST support a sequence of urgent data of any length.
A TCP MUST inform the application layer asynchronously whenever it receives an Urgent pointer and there was previously no pending urgent data, or whenever the Urgent pointer advances in the data stream. There MUST be a way for the application to learn how much urgent data remains to be read from the connection, or at least to determine whether or not more urgent data remains to be read.
Although the Urgent mechanism may be used for any application, it is normally used to send "interrupt"- type commands to a Telnet program (see "Using Telnet Synch Sequence" section in [INTRO:1]).
The asynchronous or "out-of-band" notification will allow the application to go into "urgent mode", reading data from the TCP connection. This allows control commands to be sent to an application whose normal input buffers are full of unprocessed data.
The generic ERROR-REPORT() upcall described in Section 126.96.36.199 is a possible mechanism for informing the application of the arrival of urgent data.